Как вы делаете вывод информативных сообщений после POST-а?

Духовность™

Продвинутый новичок
Как вы делаете вывод информативных сообщений после POST-а?

Возникла задача грамотно реализовать метод передачи пользователю информации о прошедшем действии. Например, есть у нас некий набор скриптов, который что-то делает с пользовательскими данными. После каждого действия необходимо информировать пользователя о результатах.

Проблема заключается в том, что после POST-запроса нужно делать редирект, что бы предотвратить F5-симптом. Соответственно, как-то нужно передавать в скрипт сообщение..

Пока вижу 3 решения:

1. Передавать при Location в GET id сообщения, который вывести на следующий странице. Сами сообщения писать в БД. Писать именно при каждом действии, ибо в самих сообщениях будут присутствовать уникальные данные, например:
Код:
Изменения успешно сохранены

Данные администратора [b]Петя83[/b] успешно изменены.
2. Аналогично, но передавать ID в cookie.

После первого показа сообщения, удалять его из БД (и удалять куки, если метод 2).


3. Делать промежуточную страницу, на которой выводить что-то вроде:
Код:
Изменения успешно сохранены

Данные администратора [b]Петя[/b] успешно изменены.
Переадресация на модуль «[u]управления администраторами[/u]» произойдет через несколько секунд.

Что ещё посоветуете?
 

HraKK

Мудак
Команда форума
actions свободно рулят.
Типа
site.com/news/edit/susseful/
 

asterisk

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

HraKK

Мудак
Команда форума
Я предпочитаю выводить уже страницу, только с мессагой уже.
Например мы заходим на страницу изменения настроек админа
/user/edit/1/
Вносим правки жмем сохранить нас перенаправляет на
/user/edit/1/modify/
вносятся изменения и перенаправляется на страницу редактирования только с месагой об успешности/ошибки
/user/edit/1/susseful/
 

cDLEON

Онанист РНРСlub
SID не люблю, поэтому почти не использую сессии.
Ты наверное хотел написать, "СИД не юзаю потому что впадлу разбираться с механизмом сессий."
Ни от одного вменяемого ПХП программера не слышал подобных бредней.
 

Андрейка

Senior pomidor developer
cDLEON
ты уже разобрался с механизмом сессий?

HraKK
ну на /edit/1/susel/ отправить не проблема.. а если ошибка в полях, которые б еще и показать надо и форму кривозаполненную.. на /edit/1/error/usirname_Petya/pasvord_.. отправлять?
 

Фанат

oncle terrible
Команда форума
Андрейка
ошибка в заполнении - это другой разговор.
здсь, по хорошему, без сессий не обойтись.

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

Куда информативнее перекинуть человека на полученные данные, чтобы он их визуально проконтролировал
 

fixxxer

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