Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обработка формы
Форумы портала PHP.SU » » Вопросы новичков » Обработка формы

Страниц (1): [1]
 

1. snikers987 - 25 Октября, 2011 - 22:58:52 - перейти к сообщению
В общем в двух словах задумка такая:

Юзер заполняет форму и нажимает отправить

Если все гуд, тот тут все понятно.

А если допущена ошибка при заполнении какого либо поля, юзеру надо дать в лоб формой с подсветкой не верно заполненного поля и при всем этом сохранить содержимое всех полей ввода. Пока думаю так:
Проверяю поле и если есть ошибка создаю $_SESSION['error']['имя поля'] = 1;

потом проверяю существует ли $_SESSION['error'] и если существует, записываем значения всех полей в $_SESSION['data'] = array("поле" => "значение" ...);
и отправляю обратно к форме, вот и интересно правилен ли такой подход?

Собственно интересует не реализация, а сам ее механизм. Спасибо.
2. jarosluv - 25 Октября, 2011 - 23:21:20 - перейти к сообщению
Зачем всё усложнять с сессиями? Ведь данные из формы у тебя хранятся в массиве $_POST, следовательно его и проверяй.
3. snikers987 - 25 Октября, 2011 - 23:29:53 - перейти к сообщению
jarosluv пишет:
Зачем всё усложнять с сессиями? Ведь данные из формы у тебя хранятся в массиве $_POST, следовательно его и проверяй.


Обработчик и форма 2 разные страницы, если данные не верны, то редирект на форму, как по твоему должен POST передаться в форму?
(Добавление)
появилась идея, попробую отпишусь
4. DlTA - 25 Октября, 2011 - 23:36:25 - перейти к сообщению
snikers987 пишет:
как по твоему должен POST передаться в форму

как обычно

CODE (html):
скопировать код в буфер обмена
  1. <input value='<?=@$_POST['varname']?>' name='varname'>....

(Добавление)
хотя если надо редирект
то тогда в сессию
5. jarosluv - 25 Октября, 2011 - 23:40:17 - перейти к сообщению
snikers987 пишет:
jarosluv пишет:
Зачем всё усложнять с сессиями? Ведь данные из формы у тебя хранятся в массиве $_POST, следовательно его и проверяй.


Обработчик и форма 2 разные страницы, если данные не верны, то редирект на форму, как по твоему должен POST передаться в форму?
(Добавление)
появилась идея, попробую отпишусь


В первом посте, о том, что форму обслуживают 2 файла ни слова. Вообще довольно странный подход, но если хочешь делать именно так, то твой механизм вполне оправдан.
6. snikers987 - 25 Октября, 2011 - 23:56:27 - перейти к сообщению
Вся проблема в том, что мой метод мне самому не нравится, вот и спрашиваю. Нужна именно такая реализация вывода ошибок..
7. DlTA - 26 Октября, 2011 - 00:05:09 - перейти к сообщению
а почему не нравится?
вроде же все просто?
8. snikers987 - 26 Октября, 2011 - 00:07:49 - перейти к сообщению
буду делать одним файлом.

след. схеме:

показываем форму, отправляем
при существовании поста проверяем все значения, если ошибок нет то показываем предпросмотр, если есть то показываем форму и ошибки, а то что-то я действительно намудрил)

но при такой схеме, появляется новая проблема: если с точки зрения скрипта данные верны, а юзер захочет их поправить, надо вернуть его обратно к форме с заполненными полями, либо подтвердить отправку.

как сделать возврат к заполнению? Подтвердить это форма с hidden полями, не особо хочется делать еще одну такую же для кнопки редактировать, какой выход из этой ситуации?
(Добавление)
PHP:
скопировать код в буфер обмена
  1. echo "<input class='prevstep' type='button' value='< Отредактировать' onclick=\"history.back(1);\"/>\n";


Радость

пошел спать)
(Добавление)
DlTA пишет:
а почему не нравится?
вроде же все просто?


слишком мудрено, не хочу сессии юзать.
9. DlTA - 26 Октября, 2011 - 08:52:36 - перейти к сообщению
snikers987 пишет:
слишком мудрено, не хочу сессии юзать.

ну да, пипец как сложно)))

работа с $_SESSION не сложнее чем с $_GET или $_POST
с той лиш разницей что инициировать работу с сессиями нужно до какого либо вывода в браузер
10. snikers987 - 26 Октября, 2011 - 08:56:56 - перейти к сообщению
DlTA пишет:
snikers987 пишет:
слишком мудрено, не хочу сессии юзать.

ну да, пипец как сложно)))

работа с $_SESSION не сложнее чем с $_GET или $_POST
с той лиш разницей что инициировать работу с, сессиями нужно до какого либо вывода в браузер


ну во первых потише с выражениями, а во вторых кто сказал что сложно? Я сказал что не хочу.

 

Powered by ExBB FM 1.0 RC1