Маршрут для отправки обратно сообщения об ошибке / успехе при отправке формы - PullRequest
0 голосов
/ 25 апреля 2011

Я пытаюсь сделать так, чтобы процесс отправки моей контактной формы работал одинаково хорошо независимо от того, включен ли на клиенте javascipt или нет.

Если javascript включен, то проверка будет обрабатываться на стороне клиента, когда событие onsubmitсрабатывает, что вызывает мою функцию validateContactForm ():

<form method="POST" action="email_processing.php" onsubmit="return validateContactForm();">

Если возвращается false, то форма не отправляется, и клиенту предлагается исправить то, что он сделал неправильно.

Форма отправляется в сценарий email_processing.php, если true возвращается функцией validateContactForm () или javascript отключен.Затем скрипт php повторно проверяет данные и, если все в порядке, отправляет электронное письмо.

Если бы я полагался на javascript, я мог бы сделать этот процесс асинхронным и просто заставить скрипт php возвращать сообщение, которое получитобрабатывается функцией обратного вызова на стороне клиента.Это может быть либо сообщение об ошибке, либо сообщение об успехе.

Но так как я хочу сделать эту работу для людей с отключенным JavaScript, я не могу этого сделать.

Если есть ошибка, мне нужно вернуть страницу контактной формы с сообщениями об ошибках, отображаемыми в контактной форме, и если она прошла успешно, возможно, мне следует избавиться от контактной формы и просто показать сообщение «спасибо»где раньше была форма.

Мне было бы интересно узнать, будут ли пользователи stackoverflow:

  1. Отправить форму в скрипт php, который затем перенаправит наразные страницы php / html.

  2. Имеют функции проверки / отправки по электронной почте вверху самой страницы php для связи с нами, и каждый раз, когда загружается страница для связи с нами, мы проверяем, есть ли определенныепеременные были установлены, и если это так, то мы знаем, что нам нужно проверить и отправить электронные письма и отобразить правильный формат / сообщение.

  3. Если я должен думать об этом по-другому.Это должно быть очень распространенной ситуацией, и я делал это много раз в нескольких приложениях для себя, где я знал, что у меня будет включен javascript, но мне нужно сделать это для клиента, и я хочу убедиться, что все сделано правильно.

Большое спасибо заранее

Ответы [ 2 ]

1 голос
/ 25 апреля 2011

Это действительно очень распространенная ситуация.

Итак, у вас есть два вида проверки: на стороне клиента и на стороне сервера. Серверная сторона является наиболее важной, и я рассматриваю проверку на стороне клиента как функцию. Например, если вы заполняете форму, «приятно» проверить, правильно ли она заполнена без фактической отправки запроса, но вы все равно должны выполнить проверку на стороне сервера по соображениям безопасности.

Вам нужно всегда выполнять проверку на стороне сервера, но на самом деле лучше делать и то, и другое. Вот как это сделать:

Действие формы должно отправить пользователя в .php-файл. Если содержание подтверждено, хорошо, дайте ему хорошее сообщение. Если содержимое не подтверждено, отправьте его обратно на страницу формы и отобразите сообщение об ошибке.

Если вы ищете менее абстрактное решение, дайте мне знать.

1 голос
/ 25 апреля 2011

Вот что я делаю.сначала я использую jQuery validate (вот как я проверяю), и ошибки будут отображаться, если они есть, и не позволят пользователю продолжить работу без проверки

, затем я отправляю отправку формы с помощью jQuery ajax когда он попадает на сервер, я также делаю двойную проверку с помощью php, это дает мне двойную защиту, и ошибки отправляются обратно

, если у пользователей не включен javascript, когда форма отправляется на проверкусделано ошибки отображаются сообщения

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...