【发布时间】:2010-05-04 05:32:07
【问题描述】:
我目前正在开发一个用户填写表单的页面,提交后他们将被带到下一页。在下一页时,我想要它,这样如果用户使用后退按钮返回上一页,或者点击刷新,提交将不会被保存到数据库中。
现在我记得在某处读过,如果你有办法让每个提交都独一无二,这个问题就可以避免,但是在连续几个小时搞砸之后,我这辈子都不记得如何做到这一点(使用 PHP ),长话短说,有没有人遇到过这种情况,如果有,您的解决方案是什么?
【问题讨论】:
我目前正在开发一个用户填写表单的页面,提交后他们将被带到下一页。在下一页时,我想要它,这样如果用户使用后退按钮返回上一页,或者点击刷新,提交将不会被保存到数据库中。
现在我记得在某处读过,如果你有办法让每个提交都独一无二,这个问题就可以避免,但是在连续几个小时搞砸之后,我这辈子都不记得如何做到这一点(使用 PHP ),长话短说,有没有人遇到过这种情况,如果有,您的解决方案是什么?
【问题讨论】:
使用Post/Redirect/Get 模式来避免这个问题。另见Redirect After Post。
【讨论】:
另一种方法是使用uniqid 生成标识符,并将其作为隐藏的input 包含在表单中。提交时,将该标识符存储在标有UNIQUE 索引的数据库列中。这将导致后续提交引发 SQL 错误,您的应用程序可以正常处理。
【讨论】:
您可以在第二页添加任何确认。
通过添加任何确认框或任何按钮....
通过它您可以确认用户是否要保存它......
如果你不想要任何确认......那么你可以删除最后一条记录......通过使用管理会话......但是很快触发查询并以那种方式删除不是一个好习惯......
所以最好的方法是添加任何确认消息....
【讨论】: