Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Почему, если обновить страницу после отправки формы, то форма отправляется заново?

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


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

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

Конкретнее: было 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
Юзер

moHAX - 17 ноября 2013 17:33 -

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

golden_eagle_god
Юзер

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

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

Roman.NMSK
Юзер

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

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

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

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

наверх