Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Почему, если обновить страницу после отправки формы, то форма отправляется заново?

Почему, если обновить страницу после отправки формы, то форма отправляется заново?


     17.11.2013    Общие вопросы, Общие вопросы по PHP, Модули    2284

вопрос
У меня есть поле и кнопка, при нажатии на эту кнопку данные из поля прибавляются к значению в БД. Введя значение я нажал на кнопку, прибавление произошло (смотрел по базе), после этого я оказался на этой же странице. Обновив эту же страницу у меня снова произошло прибавление этого же числа к значению.

Конкретнее: было 800, ввел 50, стало 850, обновил страницу стало 900. Как исправить это??
Код:
if (isset($_POST['plus'])) {
$points=$_POST['valuepoints'];
$db->query( "UPDATE " . USERPREFIX . "_users set points=points+".$points." where user_id='{$row['user_id']}'" );
}

Ответа пока нет


Комментарии пользователей (3)

moHAX
3

moHAX - 17 ноября 2013 17:33 - Юзер

Просто при нажатии на F5 происходит не просто обновление страницы, а повтор последнего запроса. Тебе надо после запроса, если выполнено условие сделать редирект на эту же страницу. После этого F5 повторит только редирект =)) Как-то так

golden_eagle_god
26

247 | 34

golden_eagle_god - 18 ноября 2013 12:07 - Юзер

Как лучше будет реализовать редирект на эту же страницу (мой профиль, страница пользователя)

Roman.NMSK
10

95 | 34

Roman.NMSK - 18 ноября 2013 14:28 - Юзер

ну самый просто способ - создать пхп-страницу (redirect_form.php) и в ней прописать редирект на страницу с твоей формой. а в твоем скрипте после успешной отправки формы делать редирект на redirect_form.php - таким образом будеш очищать пост-данные

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы