Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как вывести ошибку пользователю?
 
 автор: Grends   (03.01.2012 в 21:10)   письмо автору
 
 

Здравствуйте, у меня есть проблема. Мне нужно сделать на сайте так, чтобы когда
пользователь вводил неправильную информацию, то на этой же web-страничке выводился
текст ошибки.
Например:
У пользователя есть 2 формы: логин и пароль, он вводит информацию(свои данные) и эта
информация летит по методу POST в обработчик, если всё правильно, то его пускают в его
«личный кабинет», если нет, то должна выводиться ошибка на той страничке, на которой он
вводил инфу(например index.php).
Я вроде бы нашёл выход, но столкнулся с проблемой. Когда обработчик находит
несовместимость инфы, то завершает работу и отправляет текст через POST ? но кнопка
submit сама нажиматься не хочет…)
If (условие)
{echo "<html><head><script type='text/javascript'>setTimeout(function(){document.getElementById
'errors_rating').submit()})</script><meta http-equiv='Refresh' content='0; URL=films.php?id=$id'></head><body><form action='films.php?id=$id' method='post' name='errors_rating'><input
name='error_rating' type='hidden' value='$error_rating'></form></bodu></html>";
exit();} 

У меня 2 вопроса:
1. Как сделать автоматическое нажатие кнопки submit ?
2. Есть ли другие способы решения моей проблемы?)

  Ответить  
 
 автор: cheops   (03.01.2012 в 21:37)   письмо автору
 
   для: Grends   (03.01.2012 в 21:10)
 

>2. Есть ли другие способы решения моей проблемы?)
Обычно обработчик располагают перед формой (как вариант, подключают при помощи include(), require()), если обработчик находит ошибки, он просто формирует их список в ошибках и дает форме снова отобразиться с вывод этих сообщений об ошибках. Если ошибок нет, он производит обработку, останавливает дальнейший вывод (в том числе и HTML-формы) и осуществляет редирект на нужную страницу при помощи функции header() и HTTP-заголовка Location.

  Ответить  
 
 автор: Grends   (03.01.2012 в 22:02)   письмо автору
 
   для: cheops   (03.01.2012 в 21:37)
 

Спасибо за дельный совет, я так увлёкся решением проблемы с кнопкой, что даже не заметил этот вариант!) Но если выводить обработчик перед формой, то не сильно ли будет тормозить страничка, ведь сам код не маленький…?

  Ответить  
 
 автор: Jackson   (03.01.2012 в 23:25)   письмо автору
 
   для: Grends   (03.01.2012 в 22:02)
 

абсолютно не будет тормозить - это далеко не те объемы. А во вторых, почему будет тормозить страничка, если код проверки не на ней? (я так понимаю идет проверка на php).
И зачем обращаться к яваскрипту уже на этапе вывода ошибки. Или делай проверку сразу на яваскрипт и алертами оповещай об ошибках при попытке отправить форму с дальнейшим прерыванием отправки, или уже на сервере проверяй всю информацию и выводи что напроверял как посоветовал Cheops.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования