我有一个PHP应用程序,用户可以在那里申请奖金。但在奖金赎回代码运行之前,有一个确认页面。问题是,在IE中,如果在单击“继续”按钮后立即按下f5,则确认页会刷新,而奖金赎回代码已经由“继续”按钮触发并实际通过。但是因为用户仍然看到确认页面,他们会再次按下“继续”按钮,现在他们得到了一个错误,因为他们已经注册了。
是否有一种方法可以禁用f5按钮使用javascript?这是最好的办法吗?我已经尝试过很多我在网上找到的脚本来完成这个任务,但是没有一个脚本能做到这一点。有什么更好的方法吗?也许是在申请方面?
发布于 2012-10-18 03:28:04
编辑:如果申请奖金的结果是数据库的,你可以加载现有的索赔在您的确认屏幕上,并测试一个已经存在。
编辑:您可以做的另一个巧妙的技巧是serailize/json_encode $_POST并由此生成一个散列,将其存储在数据库或用户会话中,并对其进行测试。
我将为表单生成一个单独的使用令牌(散列)作为隐藏字段,如果将post数据重新加和,则该令牌已经被使用,您可以使post请求无效。
发布于 2012-10-18 06:30:34
有几种方法可以解决您的问题:
结帐:http://bjw.co.nz/developer/general/75-how-to-prevent-form-resubmission
我一直在使用第二种方法(使用会话),它真的很好用。
https://stackoverflow.com/questions/12946541
复制相似问题