У меня есть php веб-страница с формой. После заполнения формы в веб-странице я могу отправить его серверу. Но после этого, если я обновляю страницу, она вставляет ту же запись на базу данных. Там какие-либо решения к этой проблеме?
Используйте шаблон POST / Redirect / GET . Это не позволит пользователю повторно отправить ту же форму.
Есть несколько способов, например:
Ага, сделайте два запроса. Первый проверяет, что данные еще не существуют в БД, второй выполняет вставку, если нет повторяющихся данных. Есть несколько способов проверить, не существует ли повторяющихся данных, но это основной процесс, который вы захотите пройти.
Вот что означает «Обновить»: «сделай это снова».
Вы можете проверить, есть ли данные, которые соответствуют отправленным данным, уже в базе данных. Если да, вы можете отклонить новую заявку.
Перед вставкой в базу данных проверьте, не дублируются ли уже одни и те же значения, и если они дублируются, не вставляйте. Еще больше помогает проверка нескольких столбцов. Например, вместо проверки только «имени пользователя» вы должны проверить «имя пользователя» И «пароль».
Очевидно, что приведенные выше примеры - подделка, но вы должны уловить суть.
Вы можете изменить свой запрос на INSERT IGNORE INTO table_name ...
, это предотвратит двойную вставку.
Вы можете создать страницу process.php и установить для нее действие формы
.
In process.php
//code to insert item to database
header('Location: YOUR_FORM_PAGE_HERE);
Затем он отправит их обратно на исходную страницу, и не будет никаких данных публикации