Intereting Posts

PHP продолжает вставку при обновлении

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

Следующая ситуация: я вставляю следующее в PHP:

$sqlinserttb = "INSERT INTO tagesberichte (`TbID`, `Tagesberichte`, `Datum`) VALUES ('DEFAULT', '".$tagesbericht."', '".$datum."');"; 

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

Что я упустил?

Использовать header("location: <path to your self-submitting form>"); после того, как вы закончите вставку, таким образом будет отображаться новая форма и обновление не должно приводить к отправке снова.

Из объяснения использования, которое вы объяснили, я понимаю, что у вас есть собственная форма отправки (отправка на ту же страницу и запрос на обработку). Вы можете хранить ваши переменные запроса в php-сессиях, а затем проверять входящие данные запроса с данными в сеансе (если сеанс существует). Если это так, тогда отобразите сообщение об ошибке, иначе вставьте, а затем установите сеанс с данными запроса.

Если вы обновите URL-адрес, все соответствующие данные будут отправлены в php-скрипт, как и сам пользователь. Чтобы справиться с этим, вы могли: 1. Использовать метод post для отправки результата на сервер. Это не исключает ситуаций с обновлением страницы, но большинство браузеров спрашивают пользователя: «Вы действительно хотите отправить все данные на сервер?» 2. Используйте перенаправление после того, как скрипт php продолжит работу с вашим входом. В этом случае браузер не будет иметь данные для повторной отправки. Но пользователь может вернуться к предыдущей странице и снова отправить данные повторно. 3. Также вы могли бы предоставить какие-то переменные «meta http-equiv =» Cache-Control «…», чтобы срок действия страницы истек.