Защита формы от F5 (обновления страницы)

Alex_nov

Новичок
Добрый день!
Как правильно организовать своего рода защиту (проверку) обновления страницы, после постинга формы.
Т.е. заполнили все поля формы комментария и нажали отправить...
PHP/mysql провели действия.
Чел жмет F5 - действия повторяются заново.
---------------

Проблема возникла в том, что считаются добавленные и удаленные сообщения через сессии. +1 и -1 соответственно.

Но вот при удалении когда $n=0 и нажатии F5 можно получить сессию со значением -1.

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

Но может есть какое то решение оригинальное?
 

Alex_nov

Новичок
Добавлю код
PHP:
	   			DB()->Query("UPDATE " . PREFIX . "_tracker SET informed='0' WHERE uid = '" . $_SESSION['user_id'] . "' AND bid = '" . DB::getDB()->Escape($_POST['tid'][$cid]) . "'");
	                	DB()->Query("UPDATE " . PREFIX . "_user SET notification = notification-1 WHERE Id='". $_SESSION['user_id']."'");
				if ($_SESSION['notification']>0) $_SESSION['notification']=$_SESSION['notification']-1;
в базе поле notification могу получить отрицательное, при нажатии N раз f5
 

Alex_nov

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

shelestov

я тут часто
можно, но нельзя в плане структуры платформы. Выводится сообщение, которое содержит в себе данные формы. Без него понятно, что по location ушел и все дела.
Если эти данные сохраняются их можно заново вытащить на странице куда увел редирект.
Если нет, можно воспользоваться механизмом flash messages.
 

Фанат

oncle terrible
Команда форума
Выводится сообщение, .
Идея сначала сделать редирект, а потом показать сообщение, не приходила тебе в голову?
но нельзя в плане структуры платформы.
Тут варианта два.
Либо ты думаешь, что структура не позволяет - тогда надо разобраться с платформой поподробнее.
Либо действительно не позволяет - тогда надо эту говноструктуру срочно переделывать.
 

Фанат

oncle terrible
Команда форума
можно воспользоваться механизмом flash messages.
У тебя болезнь "профи разговаривает с ламером".
Не надо слишком переусложнять ламерские вопросы и начинать выдумывать.
Надо чтобы сначала человек освоил таблицу умножения, буквы там научился разбирать. А потом уже рассказывать ему про дроби и пропорции
 

Фанат

oncle terrible
Команда форума
Сама, кстати, постановка вопроса непонятна. Зачем вообще считать что-то в сессии?
 

Фанат

oncle terrible
Команда форума
Нет. Таблица умножения - это редирект после поста. Первый закон Ньютона. Делается всегда. Вне зависимости от капризов или уровня знаний очередного клепателя сайтов по видеоурокам.
А flash messages - это свистелки и перделки. Добавляется по желанию, для красоты.
 

keltanas

marty cats
Фанат
Если юзер ввел данные в форму, то не должен их лишится после отправки и ошибки валидации. И это не красота, а производственный минимум.
 

shelestov

я тут часто
Фанат
Если юзер ввел данные в форму, то не должен их лишится после отправки и ошибки валидации. И это не красота, а производственный минимум.
Редирект то только при успехе, если ошибки валидации он не нужен.
Ничего страшного от рефреша не должно происходить, т.к. любая запись куда либо должна осуществляться только при прохождении валидации.
 
Сверху