Heim > Artikel > Backend-Entwicklung > 防止页面刷新,该怎么处理
防止页面刷新
我现在遇到了一个问题
开发一个电商平台与第三方支付相联接,付款完以后跳转到:付款成功的页面。。然后数据库里面的值就会增加。现在问题是我要是不停的刷新这个付款成功的页面。。我的数据库里面的值一直会不停的增加。有没有简单想法可以实现下,有人说你可以在设计一张表,一个已经付款一个未付款,付款后在更新这个表,后面的数据库就不执行了。这样肯定不行。。工作量太大了。
我想到一个可以通过$_SERVER['HTTP_REFERER']判断他的来源,如果是本网站则不执行数据库语句,如果不是则执行。
可这样效果不是很好。
有人也说用COOKIE可以实现,请问这是怎么实现的?因为他是从第三方网站跳转过来的参数值我只能在付款成功的页面存储。然后再拿出来判断?岂不是前后值都一样?数据库照样会执行?
------解决思路----------------------
付款成功页面你嵌入逻辑操作干啥?你可以将逻辑操作写到支付接口数据返回同步文件做操作就好了。
------解决思路----------------------
不知道你的框架是如何的。
如果有业务逻辑层的话,先执行付款的业务逻辑,执行完之后不要直接显示结果画面,而是执行一个显示用的业务逻辑。在那个逻辑里显示结果画面。这样刷新的时候就只会刷新显示用的业务逻辑。不会重复提交。
还有种比较保险的办法。在提交的页面中,生成一个唯一码,放在session中,同时也放在画面的隐藏控件中,在提交时,判断session中和隐藏控件中的唯一码是否一致,是的情况下执行提交操作,操作完成后删除session中的唯一码。这样刷新的时候因为session中已经被删除,比对不一致,就可以提示不要重复刷新页面了。