Технический сбой

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

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


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

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

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

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

golden_eagle_god
Юзер

golden_eagle_god - -

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

Roman.NMSK
Юзер

Roman.NMSK - -

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

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

наверх