我是PHP的新手,我想知道当用户在与表单相同的页面刷新时,其他程序员使用什么方法/预防来阻止数据输入MySQL数据库两次?显然它发生了,我需要一个很好的方法来阻止它.
谢谢,本
我称之为网络编程的黄金法则:
永远不要用身体回应POST请求.始终执行工作,然后使用Location:标头进行响应以重定向到更新的页面,以便浏览器使用GET请求它.
这样,清爽不会对你造成任何伤害.
另外,关于评论中的讨论.为防止双重发布,例如,意外双击"提交"按钮,将表单的md5()存储在文本文件中,并将新表单的md5与存储的md5进行比较.如果他们是平等的,你就有一个双重职位.
处理表单,然后重定向到结果页面.然后重新加载仅重新显示结果页面.
Ilya的回答是正确的,我只想添加一些比评论更多的内容:
如果重新提交是危险的(返回并再次提交,重新加载结果页面[如果你没有采取伊利亚的建议]等)我使用"随机数"来确保表格只能通过一次.
在表单页面上:
// ... snip ...
在处理页面中:
表单提交一次后,无法再次提交,除非用户故意将其填写第二次.