Обработка формы - использовать сессии, или нет?

После удачной проверки данных поста делаем редирект, в случае неудачной проверки данных поста оставляем те данные, которые прошли проверку; те, которые не прошли удаляем и оставляем на этом месте открытые поля плюс под ними сообщение об ошибке (заполни это поле, принимаются только латинские буквы) Сколько бы человек не нажимал F5, все равно форма не запостится, пока форма не будет проверена до конца, но каждый раз у человека будут все данные, которые он вводил.
 
Мне кажется, что процент пользователей, ради которого этого делается, не стОит этого обсуждения.

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

Все вышесказанное, моё скромное ИМХО.
 
если перед заполнением формы, давать самой форме уникальный идентификатор (не идентификатор "типа"\"вида" формы), то повторно она никак не будет заполненна
 
ИМХО сделать редирект вовсе несложно, зато вот удобство пользования сразу повышается. И если передавать идентификатор конкретной формы, то и проблемы
Пользователь неправильно заполнил форму. Ему так вежливо "Вы неправильно заполнили некторые поля". А он, подумав "а ну вас!", пошел дальше бродить по сайту. Через пол часа он снова набретает на эту же форму, а она все еше заполнена его данными,
не будет.

ЗЫ: Идею ID формы почерпнул из этой ветки, сам раньше как-то не задумывался. Спасибо :)
 
Упдейт.
Во-первых, спасибо Давиду Мзауреляну за то, что пнул в том смысле, что данные- то в сессии надо хранить всего долю секунды. То есть, особенно париться за их уникальность не нужно.

Далее.
Спасибо Алекею Земскову за то, что заставил перечитать RFC и показал свой проект, который разрешает кэширование страниц, запрошеных постом.
В результате, я, пожалуй, остановлюсь именно на таком варианте. В нормальном браузере все будет работать, как надо: кнопка Back просто покажет страницу с ошибкой, а сообщение о невозможности отобразить будет показано только если нажать Ф5, что логично.
 
Re: Обработка формы - использовать сессии, или нет?

Я делаю вроде более просто
PHP:
<form action="" method="post">
<input type="text" name="myname" value="<? ( isset( $_POST['myname'] ) ) ? htmlspecialchars( $_POST['myname'] ) : '' ?>">
<input type="submit">
</form>
Ну а если честно, то у меня каждый html файл это шаблон, там все еще намного проще:
PHP:
<form action="{ACTION}" method="post">
<input type="text" name="myname" value="{myname}">
<input type="submit">
</form>
Подключаю этот шаблон и заменяю все переменные так:
PHP:
<?
$s = implode( '', file( 'template.html' ) );
foreach ( $_POST as $k => $v ) $s = str_replace( '{'.$k.'}', htmlspecialchars( $v ), $s );

echo $s;
?>
 
Я делаю вроде более просто

PHP:
<form action="" method="post">
<input type="text" name="myname" value="<? ( isset( $_POST['myname'] ) ) ? htmlspecialchars( $_POST['myname'] ) : '' ?>">
<input type="submit">
</form>
Извините, ошибочка тут есть маленькая
надо писать:
PHP:
<?= ( isset( $_POST['myname'] ) ) ? htmlspecialchars( $_POST['myname'] ) : '' ?>
Обязательно <?= вместо <? или данные просто не выведутся.
 
WOW!
Ну, это меняет всё дело :-)
Получается, скрипт ещё круче.

слушай, ты, случайно платные консультации не оказываешь?
Я бы к тебе в ученики пошёл?
 
Автор оригинала: Фанат
WOW!
Ну, это меняет всё дело :-)
Получается, скрипт ещё круче.

слушай, ты, случайно платные консультации не оказываешь?
Я бы к тебе в ученики пошёл?
Ну ты однако и юморист :D
Очепятался я, а ты издеваешься :mad:
 
Originally posted by _RVK_
Фанат
Может стоит вырезать этот кусок? Жаль ведь тему.
Ну зачем вырезать? Я давно так не смеялась;)
D!!!
>Очепятался я, а ты издеваешься
И что самое обидное, совсем не над очепяткой.
 
Автор оригинала: svetasmirnova
Ну зачем вырезать? Я давно так не смеялась;)
D!!!
>Очепятался я, а ты издеваешься
И что самое обидное, совсем не над очепяткой.
Солнышко, а над чем же ты смеялась ? :)
 
Вообще строго говоря мне не понятно что страшного в невозможности отображения страницы без повторной отправки данных? А воротить все через сессии только что бы ее не было я думаю пользователи не оценят...
 
asm

А пользователи не поймут, что надо что-нибудь оценивать
 
2 Фанат
А можно поподробнее про "кэширование поста"?
В какую сторону смотреть?
 
я пока сам толком не разобрялся.
автор утверждает, что надо писать Expires: 0
но это мне кажется шаманством.
Надо читать и экспериментировать
 
to Фанат
Если не против можно поинтересоваться :
Во-первых, спасибо Давиду Мзауреляну за то, что пнул в том смысле, что данные- то в сессии надо хранить всего долю секунды. То есть, особенно париться за их уникальность не нужно.
Я не совсем понял причины беспокойства за уникальность,
может просто я их как то храню не так ...
 
Сверху