【发布时间】:2010-06-28 16:04:43
【问题描述】:
我有一个带有表单的 php 网页。在网页中填写表格后,我可以将其提交到服务器。但在那之后,如果我刷新页面,它会将相同的记录插入数据库。这个问题有解决办法吗?
【问题讨论】:
标签: php database forms save submit
我有一个带有表单的 php 网页。在网页中填写表格后,我可以将其提交到服务器。但在那之后,如果我刷新页面,它会将相同的记录插入数据库。这个问题有解决办法吗?
【问题讨论】:
标签: php database forms save submit
使用POST/Redirect/GET 模式。这将阻止用户重新提交相同的表单。
【讨论】:
有多种方式,例如:
【讨论】:
是的,做两个查询。第一个检查以确保数据库中不存在数据,如果没有重复数据,第二个会插入。有很多方法可以检查以确保不存在重复数据,但这是您需要经历的基本过程。
【讨论】:
嗯,这就是 Refresh 的意思:“再做一次。”
您可以检查与提交数据匹配的数据是否已经在数据库中。如果是这样,您可以拒绝新的提交。
【讨论】:
在插入数据库之前检查相同的值是否已经重复,如果它们是重复的,则不要插入。检查多个列有助于进一步。例如,您可以检查“用户名”和“密码”,而不是只检查“用户名”。
显然上面的例子是假的,但你应该明白这一点。
【讨论】:
您可以创建一个 process.php 页面并将表单的action 设置为它。
在process.php中
//code to insert item to database
header('Location: YOUR_FORM_PAGE_HERE);
然后它会将它们发送回原始页面并且不会有任何帖子数据
【讨论】:
您可以将查询更改为INSERT IGNORE INTO table_name ...
这将阻止您插入两次。
【讨论】: