как вывести все ошибки о проверке данных формы

asker3

Новичок
как вывести все ошибки о проверке данных формы

есть 2 фала первый это форма form.php, после субмита данные передаются скрипту add.php? где все поля проверяются на
правельность ввода,

если все ок данные заносятся в базу

иначе есть проблема запускаем header("Location: form.php?error=true");

но ошибок заполнения может быть много (пустое поле, неправельно заполнено, такие данные уже есть и тд), как в форме показать сразу все, которые возникли ? записывать в add.php все ошибки в массив и передавать его через $_GET обратно в форму там разбирать ? или как ? может пример какой есть ?
 

С.

Продвинутый новичок
Вместо form.php и add.php сделать один addform.php. В случае ошибки никуда не перенаправлять, выдавать все здесь же.
 

findnext

Новичок
asker3
зачем тебе header("Location: form.php?error=true"); ?? как ты понимаешь для чего вообще header нужен?

-~{}~ 07.01.09 14:54:

флоппик
меня переменная = значение улыбнуло в GET
 

флоппик

promotor fidei
Команда форума
Партнер клуба
У него все относительно нормально сделано. Не вижу поводов для смеха.
Можно сделать лучше, с этим не спорит никто. Но ошибок в этом нет.
 

findnext

Новичок
asker3

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

asker3

Новичок
Автор оригинала: findnext
findnext

хеадер надо использовать, только если удачно были добавлены данные в базу для того чтобы вторично они не добавлялись. У тебя получается так что header всегда будет срабатывать если данные в неправильном формате
не совсем так, я просто не стал приводить весь код, сокрашенно это выглядит так.

PHP:
if(!validate_form($_POST)) {  
  header("Location: add_device_form.php?status=error&problem=receiver&id_model=$id_receiver"."&act_code=$code"."&model=$model_name");    
} else {
  header("Location: add_device_form.php?status=ok");
}
 

dimagolov

Новичок
asker3, да сохрани все статусы в сессию и ничего не передавай в GET, а просто перенаправь на add_device_form.php. Или задача именно без сессий все сделать?
 

findnext

Новичок
asker3
меня твой код просто убил....но видимо у нас разные логики мышления
PHP:
if(validate_form($_POST)) { header("Location: add_device_form.php?status=ok"); 
 }
иначе оставляешь всё как есть + вывод ошибок. Напиши функцию которая будет выдавать ошибки по конкретному полю.

status=error&problem=receiver&id_model=$id_receiver"."&act_code=$code"."&model=$model_name" - зачем тебе это для добавления товара? так ты ошибки показываешь?
 

asker3

Новичок
Автор оригинала: findnext
asker3
меня твой код просто убил....но видимо у нас разные логики мышления
PHP:
if(validate_form($_POST)) { header("Location: add_device_form.php?status=ok"); 
 }
иначе оставляешь всё как есть + вывод ошибок. Напиши функцию которая будет выдавать ошибки по конкретному полю.

status=error&problem=receiver&id_model=$id_receiver"."&act_code=$code"."&model=$model_name" - зачем тебе это для добавления товара? так ты ошибки показываешь?
извини, не хотел тебя убивать.


dimagolov

точно.
 

Фанат

oncle terrible
Команда форума
findnext, притухни

-~{}~ 07.01.09 15:59:

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

x-yuri

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

Фанат

oncle terrible
Команда форума
какая разница, сколько скриптов. форма все равно либо в шаблоне, либо пхп кодом из конструктора. то есть, если делать по-человечески, то скрипт по-любому будет 1
 
Сверху