Форма отправки php и информационный экран повторной отправки - PullRequest
0 голосов
/ 15 марта 2010

Я хочу задать вопрос о наилучшей практике. Предположим, у меня есть форма в php с 3 полями: имя, адрес электронной почты и комментарий. Я отправляю форму через POST. В PHP я пытаюсь вставить дату в базу данных. Предположим, вставка не удалась. Теперь я должен показать пользователю ошибку и отобразить форму, заполненную ранее введенными данными, чтобы он мог исправить свою ошибку. Показ формы в исходном состоянии не подойдет. Таким образом, я отображаю форму, и 3 поля теперь заполнены из PHP с помощью echo или чего-то подобного. Теперь, если я нажимаю «Обновить», я получаю сообщение «Вы уверены, что хотите отправить информацию?». ХОРОШО. Предположим, что после того, как я вставлю данные, которые я не перенесу, но перенаправлю на ту же страницу, но с необходимыми параметрами в строке запроса. Это приводит к тому, что сообщение исчезает, но мне нужно перенести 3 параметра в строку запроса.

Итак, мой вопрос:

Как лучше это сделать? Я хочу не носить с собой множество параметров в строке запроса, но также не получить эту ошибку. Как это может быть сделано? Должен ли я использовать куки для хранения информации формы.

Ответы [ 2 ]

1 голос
/ 15 марта 2010

Ваш первый сценарий кажется наиболее правильным.

т.е.

Пользователь отправляет форму

Некоторая проблема препятствует отправке, поэтому форма отображается повторно

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

"Вы уверены, что хотите отправить информацию?" Это сообщение действительно в том случае, если кто-то обновляет страницу после отправки формы, поэтому не пишите код, специально нарушающий это поведение.

0 голосов
/ 15 марта 2010

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

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

...