我有一个 PHP 应用程序,用户可以申请奖金。但是在奖励兑换代码运行之前有一个确认页面。
问题是在 IE 中,如果您在点击“继续”按钮后立即点击f5
,则确认页面会刷新,而奖励兑换代码已经被“继续”按钮触发并且实际上已经通过。但是因为用户仍然看到确认页面,他们会再次点击“继续”按钮,现在他们会收到错误,因为他们已经注册了。
有没有办法可以使用f5
停用javascript
按钮?这是解决这个问题的最好方法吗?我尝试过很多我在网上找到的脚本,但是没有一个能实现它。有没有更好的方法可以解决这个问题?也许来自申请方?
答案 0 :(得分:1)
编辑:如果声明奖金的结果是数据库,您可以在确认屏幕上加载现有的声明并测试已存在的声明。
编辑:你可以做的另一个巧妙的技巧是serailize / json_encode $ _POST并从中产生一个哈希值,将其存储在数据库或用户会话中,并对其进行测试。
我会为表单生成并将数据库的单个使用令牌(哈希)作为隐藏字段进行数据库生成,如果对数据进行重新汇总,则该令牌已经被使用,并且您可以使该帖子请求无效。
答案 1 :(得分:0)
有几种方法可以解决您的问题:
结帐处:http://bjw.co.nz/developer/general/75-how-to-prevent-form-resubmission
我一直在使用第二种方法(使用会话)并且它确实运行良好。