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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обработка формы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: не могу придумать механизм
snikers987
Отправлено: 25 Октября, 2011 - 22:58:52
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




В общем в двух словах задумка такая:

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

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

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

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

Собственно интересует не реализация, а сам ее механизм. Спасибо.

(Отредактировано автором: 26 Октября, 2011 - 19:52:58)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
jarosluv
Отправлено: 25 Октября, 2011 - 23:21:20
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Зачем всё усложнять с сессиями? Ведь данные из формы у тебя хранятся в массиве $_POST, следовательно его и проверяй.
 
 Top
snikers987
Отправлено: 25 Октября, 2011 - 23:29:53
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




jarosluv пишет:
Зачем всё усложнять с сессиями? Ведь данные из формы у тебя хранятся в массиве $_POST, следовательно его и проверяй.


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


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
DlTA
Отправлено: 25 Октября, 2011 - 23:36:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




snikers987 пишет:
как по твоему должен POST передаться в форму

как обычно

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

(Добавление)
хотя если надо редирект
то тогда в сессию
 
 Top
jarosluv
Отправлено: 25 Октября, 2011 - 23:40:17
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




snikers987 пишет:
jarosluv пишет:
Зачем всё усложнять с сессиями? Ведь данные из формы у тебя хранятся в массиве $_POST, следовательно его и проверяй.


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


В первом посте, о том, что форму обслуживают 2 файла ни слова. Вообще довольно странный подход, но если хочешь делать именно так, то твой механизм вполне оправдан.
 
 Top
snikers987
Отправлено: 25 Октября, 2011 - 23:56:27
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Вся проблема в том, что мой метод мне самому не нравится, вот и спрашиваю. Нужна именно такая реализация вывода ошибок..


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
DlTA
Отправлено: 26 Октября, 2011 - 00:05:09
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




а почему не нравится?
вроде же все просто?
 
 Top
snikers987
Отправлено: 26 Октября, 2011 - 00:07:49
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




буду делать одним файлом.

след. схеме:

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

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

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


Радость

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


слишком мудрено, не хочу сессии юзать.

(Отредактировано автором: 26 Октября, 2011 - 08:13:36)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
DlTA
Отправлено: 26 Октября, 2011 - 08:52:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




snikers987 пишет:
слишком мудрено, не хочу сессии юзать.

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

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



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




DlTA пишет:
snikers987 пишет:
слишком мудрено, не хочу сессии юзать.

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

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


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

(Отредактировано автором: 26 Октября, 2011 - 08:58:06)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB