use*_*966 5 javascript php jquery internet-explorer
我有一个PHP应用程序,用户可以申请奖金.但是在奖励兑换代码运行之前有一个确认页面.问题是在IE中,如果您f5在单击"继续"按钮后立即点击,则确认页面会刷新,而奖励兑换代码已经由"继续"按钮触发并实际通过.但由于用户仍然看到确认页面,他们会再次点击"继续"按钮,现在他们会收到错误,因为他们已经注册了.
有没有办法可以禁用f5按钮使用javascript?这是解决这个问题的最好方法吗?我尝试过很多我在网上找到的脚本,但是没有一个能实现它.有没有更好的方法可以解决这个问题?也许来自应用方面?
编辑:如果领取奖金的结果已存入数据库,您可以在确认屏幕上加载现有的领取并测试是否已存在。
编辑:您可以做的另一个巧妙的技巧是对 $_POST 进行序列化/json_encode 并从中生成哈希,将其存储在数据库或用户会话中,然后对其进行测试。
我将为表单生成并数据库一个单次使用令牌(哈希)作为隐藏字段,如果重新提交发布数据,则令牌将已被消耗,并且您可以使发布请求无效。