刷新网页会再次将数据插入数据库

时间:2010-06-28 16:04:43

标签: php database forms save submit

我有一个带有表单的php网页。在网页中填写表单后,我可以将其提交给服务器。但之后,如果我刷新页面,它会将相同的记录插入数据库。有没有解决这个问题的方法?

7 个答案:

答案 0 :(得分:9)

使用POST/Redirect/GET模式。这将阻止用户重新提交相同的表单。

答案 1 :(得分:4)

有很多方法,例如:

  • 创建一个插入表单的标记(隐藏字段)。如果同一令牌被提交两次,则丢弃第二次提交。
  • 检查数据库中是否已存在相同的帖子。
  • 将表单提交保存在会话变量中。
  • 使用Post/Redirect/Get pattern(最好与上述其中一项相结合),在提交后将用户重定向到第二页。

答案 2 :(得分:1)

是的,做两个查询。第一个检查以确保数据不存在于DB中,第二个检查是否存在重复数据。有很多方法可以检查以确保重复数据不存在,但这是您想要完成的基本过程。

答案 3 :(得分:1)

嗯,那就是刷新意味着:“再做一次。”

您可以检查与提交的数据匹配的数据是否已存在于数据库中。如果是这样,您可以拒绝新提交。

答案 4 :(得分:0)

在插入数据库之前,检查相同的值是否已经重复,如果它们是重复的,请不要插入。检查多列有助于进一步发展。例如,您不会只检查“用户名”,而是检查“用户名”和“密码”。

显然上面的例子是假的,但你应该明白这一点。

答案 5 :(得分:0)

您可以制作process.php页面并将表单action设置为它。

在process.php中

//code to insert item to database
header('Location: YOUR_FORM_PAGE_HERE);

然后它会将它们发送回原始页面,并且不会有任何发布数据

答案 6 :(得分:-1)

您可以将查询更改为INSERT IGNORE INTO table_name ...

这会阻止您插入两次。