Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработчик форм 
:(
    Опции темы
Karistjan
Дата 9.3.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.2.2008

Репутация: 1
Всего: 7



Здарова
Есть страница form.html и order.php на странице form.html есть форма с тремя полями для ввода имени e-mail и id тавара... После нажатия на кнопку отправить информация отправляется в order.php где проверяется эта информация и если всё ок, то добавляется в базу данных... Если какое-либо поле не было заполнено, на этой же странице order.php отображается та же что и на form.html форма только с надписью типа напишите пожалуйста свой email... Всё хорошо работет... В order.php есть переменные:
Код

$name = $_POST['name'];
$email = $_POST['email'];
$commodity = $_POST['commodity'];

Их я проверяю на наличие... Всё отлично работает... Но если я зайду не на form.html, а на order.php, то будет отображаться форма с сообщением напишите ваше имя и ещё три ошибки PHP выдаёт что типа  непонятные переменные:
$name = $_POST['name'];
$email = $_POST['email'];
$commodity = $_POST['commodity'];

Я понимаю почему это происходит, но это выглядит некрасиво... Как сделать так чтобы если заходишь на order.php сразу, то форма отображалась нормально и проблем с переменными не было...

Это сообщение отредактировал(а) Karistjan - 9.3.2008, 18:13
PM MAIL   Вверх
Fortop
Дата 9.3.2008, 18:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Код

<?php
if (isset($_POST['name'])) {
    if (проверка правильности переменных == все плохо) {
        // тут твое сообщение об ошибке и, если нужно, установка переменных
        $name = $_POST['name'];
    } else {
        //То вызов функций добавления в базу и вывод нужных тебе сообщений
        //return || die() - по вкусу
    }

} else {
// тут установка переменных пустыми значениями.

}
?>
// тут у тебя форма 
// с инициализированными значениями.
// что-то вроде такого

<input name="name" value="<?php echo addslashes($name);?>">


Да, кстати, последний кусок как раз лучше всего хранить в form.phtml, а обращаться всегда к order.php, который будет внизу подключать этот form.phtml

Это сообщение отредактировал(а) Fortop - 9.3.2008, 18:14


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Karistjan
Дата 9.3.2008, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.2.2008

Репутация: 1
Всего: 7



Fortop, спасибо большое за код  smile 
А можно сделать так чтобы форма и обработчик - это была одна и та же страница order.php... На ней будет форма информация из которой будет направляться на эту же страницу и обрабатываться...
Как примерно должна выглядеть модель кода такой страницы?
PM MAIL   Вверх
Feldmarschall
Дата 9.3.2008, 18:31 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Karistjan, так тебе ведь Fortop эту модель всю и нарисовал

только он почему-то написал addslashes вместо htmlspecialchars
PM   Вверх
Karistjan
Дата 9.3.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.2.2008

Репутация: 1
Всего: 7



Feldmarschall, Точно!
PM MAIL   Вверх
Fortop
Дата 9.3.2008, 18:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(Feldmarschall @  9.3.2008,  18:31 Найти цитируемый пост)
только он почему-то написал addslashes вместо htmlspecialchars 

smile прогнал smile редко пользуюсь прямым выводом smile все больше с базой работаю smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.