PHP中如何实现防刷新机制

发布网友

我来回答

2个回答

热心网友

最常见的防刷新肯定是在处理表单的时候,防止重复提交。我们有很多种方式来处理:1、提交表单之后,进行跳转,这是很常用的方式。如果你的表单是从index.php提交到post.php页面处理的,那么提交完之后可以跳转再回到index.php页面,这样再刷新就不会重复提交了。如果你是提交给当前页面处理,可以在提交之后再重新跳转到当前页面。2、使用验证码,也很常用。在提交表单数据之前先判断验证码,由于每提交一次,验证码就会变,所以这样是可以避免重复提交的。3、使用Ajax方式,毫无疑问可以避免刷新重复提交。以上讨论的是针对表单提交的防刷新,那么其他的防刷新呢?比如,我要统计一篇文章的点击数,我希望当用户刷新页面的时候,不进行统计,该怎么办呢?在此,站长只提供一种不完美的解决方案:即在当前的会话中,不统计重复载入。请看下面的代码:<?phpsession_start();if(!$_SESSION['sid']){$_SESSION['sid']=session_id();echo ‘您在此次会话中第一次浏览该页面,进行统计’;}else{echo ‘您已经在此次会话中浏览过该页面,不统计’;}?>当用户在第一次会话中访问页面时,进行统计,并把当前的会话id存在session,如果用户刷新或者从浏览器重新载入,由于在当前会话中已经访问过了,所以不会再次统计。但是,如果当用户关闭浏览器后再浏览,是会统计的。在此,站长也就文章统计是否有必要做得这么精确,说一些个人看法吧。用户浏览你网站的文章有这么几种方式:1、通过点击站内链接2、直接输入网址3、通过第三方的链接或者跳转这三种都构成正常的访问,是应该统计的。刷新,严格来说确实不应该算进统计中去,而且在多进程的浏览器中,用户打开新窗口重复输入网址也跟刷新差不多,而文章的真实访问量和重复刷新量之间的差距肯定是非常大的,所以即便是将刷新的次数算进统计中去,也不会产生太大的影响。上面的代码,实现了不完美的防刷新,但是却多出了额外的判断,而且使用session也是要消耗资源的。

热心网友

可以去用腾讯安全天御
通过腾讯积累的安全数据和引擎
可以精准识别出薅羊毛的行为,避免造成损失

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com