我有一些信息从表单传递,需要使用一次,只需一次.我可以从$ _POST很好地收集它,但我不确定哪种是确保我只能使用它一次的"最佳"方式,即我想避免用户反复按F5并多次访问该功能.
我最初的想法是设置一个会话变量并将该功能计时一段时间.问题是,在设定的时间段过去之后,可以再次访问该功能.
更好的想法欢迎!
重定向到另一个页面就足以打破大多数浏览器重新发布的刷新行为.在表单提交(或会话变量,如您的建议)上设置cookie也可以很好地工作.您可以让表单提交页面再次取消设置会话变量,这样只有对表单的新访问才允许重新提交表单.
这个非常容易实现.
你需要做的就是:
将您的表单提交到另一个页面,该页面仅处理发布信息,而不显示任何内容
然后,发送一个LOCATION标头将浏览器重定向到一个新页面(将由GET检索)这将打破浏览器的重新发布刷新行为