2010-03-15 2 views
0

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

Так что мой вопрос:

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

ответ

1

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

т.е.

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

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

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

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

0

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

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

+0

Где я использовал «неправильные даты»? – Para

+0

ОК, вы не ошиблись, чтобы использовать кавычки, как я, но это то, что, как я думал, подразумевал, когда вы говорили: «В PHP я пытаюсь вставить дату в базу данных. Предположим, что вставка не удалась». – Cups