Две формы. POST.

-Ронин-

Новичок
Две формы. POST.

Я пишу небольшой скрипт. В этом скрипте есть две формы, которые заносят данные в таблицу в БД. Разница между этими формами только в поле QUESTION, title, meta_description и meta_keywords. В одной форме поле QUESTION есть, в другой форме поял QUESTION нет.
Таким образом у меня два request_uri:
1. /question/
2. /no_qestion/

и потом есть
1. /question/post/
2. /no_qestion/post/

/post/ это для отправки запроса.
это еще по одном IF...

Я себе схему нарисовал. Но запутался с проверка на IF request_uri...
Подскажите пожалуйста как это можно упростить :) А это чего-то нагородил и запутался жутко в своей писанине. Сижу разгребаю писанину. А более простой вариант в голову не проходит. Накручиваю много проверок на request_uri как мне кажется.


вот примерный код:


PHP:
if(empty($emu[1])) {
$title = 'Online менеджер';

$meta_description = '';
$meta_keywords = '';

$content=<<<EOD
<table width="100%"  border="0">
  <tr>
    <td align="center"> <h1>Online менеджер</h1></td>
  </tr>
  <tr>
    <td align="center">
      <p><a href="/manager/call/">Заявка на звонок менеджера</a></p>      
      <p><a href="/manager/question/">Задать вопрос менеджеру</a></p>
    </td>
  </tr>
</table>
EOD;

}

if($emu[1]=='call') {

 if($emu[2]=='post') {
   $content='POST';
 }
 else {
  $title = 'Заявка на звонок менеджера';
  $meta_description = '';
  $meta_keywords = '';
  $content= 'Заявка на звонок менеджера';
}




}

elseif($emu[1]=='question') {
$title = 'Задать вопрос менеджеру';

$meta_description = '';
$meta_keywords = '';

$content=<<<EOD
  echo 'hello';
EOD;

}
 

Фанат

oncle terrible
Команда форума
1. зачем тебе два обработчкика?
2. если у тебя формы отличаются всего одним полем, то форма тебе нужна одна.
3. пиши html не внутри <<<EOD , а выноси из пхп тегов.
 

-Ронин-

Новичок
Фанат
1. Два обработчика мне нужны для того, что мне нужно сделать две страницы в которых будет все одинаково кроме поля QUESTION в форме, title, meta_description и meta_keywords.
Я правльно понял о чем ты спросил?

2. Согласен. Но как сделать так чтобы это поле не выводилась?.. Через IF сделать проверку на request_uri и затем либо выводить или скрывать поле QUESTION (свойство hidden формы).

3. не могу понять. можно пример.
 

Фанат

oncle terrible
Команда форума
1. нет, неправильно.
обработчик - это скрипт, которы ОБРАБАТЫВАЕТ твои "страницы в которых будет все одинаково"

2. Через IF сделать проверку. только к request_uri она не имеет отношения.

3.
<?
$php= 'код';
?>
<b>html код</b>
<?
$php= 'код';
?>

понятно?
 

-Ронин-

Новичок
Фанат
1. думаю.
2. согласен
3. ок. спасибо.
но я сделал небольшой шаблонизатор. Переменная $content отвечает за содержание страницы который выводит изменяему часть страницы.
 

Фанат

oncle terrible
Команда форума
вместо echo $content; делай include 'content.php';
вот и будет тебе небольшой шаблонизатор.
 

Фанат

oncle terrible
Команда форума
можешь делать, как хочешь, но редактировать html внутри =<<<EOD неудобно и к шаблонизации это не имеет никакого отношения.
 

-Ронин-

Новичок
Фанат
ок.
Я вот не могу понять как мне тогда вставлять title, meta тэги. У меня неизменяемая часть страницы загружается из index.php. Потом в него подгружается нужный файл с содержание и уже после все это дело комплируется в страницу и выводится на экран. Т.е. каждая часть страницы подгружается из своего файла.
 

Фанат

oncle terrible
Команда форума
в индексе напиши
include $content;
в своём скрипте определяй имя шаблона в $content
а в шаблоне выводи

<title><?=$title?></title>
 

-Ронин-

Новичок
Фанат
Понял.
я просто хочетл чтобы не нужно было разрезать файл на header, foot и т.д. Вот тут я не подумал. Понял.

-~{}~ 06.03.06 15:11:

Порежу файл а потом просто инклуд всего это сделаю и все ок :) Вот и будет шаблонизатор =)
 

Фанат

oncle terrible
Команда форума
я же объясняю.
в индексе у тебя рыба сайта, оформление. так?
ну так пусть и остаётся куском.
в нужном месте пишешь
include $content;

любой скирипт сайта сначала получает данные, заполняет переменные, а потом пишешь
include 'index.php'
и всё.
в нужных местах выведется $title, в месте include $content; заинклюдится шаблон.

кстати, почму индекс.пхп? у шаблона, наверное, другое имя?
 

-Ронин-

Новичок
Фанат
согласен, что так лучше =)
но понять не могу как мне обрабатывать сначла title вставлять его на страницу. А потом убе обрабатывать из шаблона часть боди и потом из этого шаблона загружать title.
Я что-то не понял =(

-~{}~ 07.03.06 17:26:

-Ронин-
А через то как я пробую неудобно =(
 

Фанат

oncle terrible
Команда форума
как обрабатывать title, я написал выше. готовый код.

-~{}~ 07.03.06 17:29:

потом из этого шаблона загружать title
зачем тебе title загружать из шабона? у тебя шаблон - это самосвал что ли? зачем из него что-то загружать?
 

-Ронин-

Новичок
Фанат
Понял.

у меня вот так:

index.php
<?php
include('reflection.php');
include('page.php);
...
?>


>>>>> page.php:
PHP:
<html>
<head>
<title><? echo $title; ?></title>
<link rel="shortcut icon" href="favicon.ico">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="keywords" content="<? echo $meta_keywords; ?>">
<meta name="description" content="<? echo $meta_description; ?>">
<meta name="robots" content="index, follow">
</head>

<body>
.....
    <? echo $content; ?>
....
</body>
</html>
--------------------------------------

пример файла с контентом:

PHP:
<?php

$title = ''; 
$meta_description = '---';
$meta_keywords = '---';

$content=<<<EOD
бла бла бла
EOD;

?>
-~{}~ 07.03.06 17:42:

reflection.php - резка uri на массив, проверка массива на схожесть со страница, еррор404 и т.д.
 

Фанат

oncle terrible
Команда форума
так.
понятно.
ты понимаешь разницу между контентом и шаблоном?

-~{}~ 07.03.06 18:03:

ещё один вопрос меня интересует.
зачем контент оформлен в виде php файла?
 

-Ронин-

Новичок
Фанат
Хм... шаблон я и думал, что в нем храняться стили страниц и т.д. После обработки в шаблон подгружаются данные. Мне негде былопрочитать про шаблоны. А где пр шаблоны пишут, пишут только как они должны работать. Может скорее всего от того, что не понимаю реальной разницы не мог увидеть в тексте, где писали разницу.
Что такое шаблон?

Хм... где-то слышал, что некоторые серверы не обрабатывают файлы с переменными если они не оформлены как php. Хотя для меня это было немножко удивительно. Но я решил, что это реально так. И стал перестразовывать. До создания сайта я раньше весь контент помещал в просто файл <name>.cnt
Могут быть проблемы с безопастностью?
 

Фанат

oncle terrible
Команда форума
понятно.
ты называешь шаблоном "рыбу" сайта неизменяемую часть, общую для всех страниц.

В пхп этот термин толкуется немного по-другому. шире.
Шаблон ведь может быть не только у сайта, но и у отдельной страницы?
К примеру, вот есть у тебя на сайте раздел "новости".
все новости выводятся одним и тем же скриптом, в одном и том же оформлении.
контентом называется содержимое новости.
шаблоном называется общее оформление для всех новостей.
то есть, у тебя получается два шаблона:
один для всего сайта
и один для новостей.
понятно?

то есть, я писал, исходя именно из такой схемы.
в формировании страницы участвует 4 файла:
1. шаблон сайта.
2. контент страницы.
3. шаблон страницы
4. скрипт, который всё собирает вместе - читает контент, заполняет переменные, и инклюдит главный шаблон сайта, в котором инклюдится шаблон страницы.

Вот для какого случая я писал.
а у тебя контент страницы совмещён с её же шаблоном.
Это нормально, в принципе. если сайт состоит только из отдельных статей, и статьи эти добавляются вручную.
в таком случае делай, как сейчас делаешь.

только уродский формат твоих файлов с контентом совершенно не понимаю.
то есть, зачем это так сделано (ради echo $content;) - я понимаю.
но лично я бы вообще ни ради чего не стал бы запихивать огромный кусок хтмл в <<<EOD
Это мне кажется дикостью.
если бы я жу совсем ничего не знал и не умел, то хотя бы разделил файл на две части - в одном меты, а в другом - НОРМАЛЬНЫЙ html, который можно редактировать в нормальном редакторе и так далее.

ну, а умея чуть побольше, я бы сделал файл такой струкутры:

первая строка - титле
вторая строка меты
третья строка - ещё какая-нибудь хрень
пустая строка
контент.
и читал бы этот файл скриптом, и разбирал на переменные.
 
Сверху