首页 >后端开发 >PHP问题 >php怎么禁止页面刷新?

php怎么禁止页面刷新?

青灯夜游
青灯夜游原创
2020-07-21 15:26:353101浏览

方法:在页面访问时判断是否有session,没有的话直接创建一个session,并设置为当前时间,程序正常向下执行;如果有session,判断session里的时间和当前时间的时间差,如果间隔小于规定的时间,则中断程序执行。

php怎么禁止页面刷新?

php禁止页面刷新的方法

方法1:

一小段代码实现页面防刷新,可能没有太大的用途,只是一个思路,供参考。

原理: 

在页面访问时判断是否有session,没有的话直接创建一个session,并设置为当前时间,程序正常向下执行;

如果有session,判断 session里的时间和当前时间的时间差,如果间隔小于规定的时间,如本例的5分钟,则中断程序执行并提示错误信息;

如果session里的时间大于当 前的时间,则刷新session中的时间,页面正常执行。

代码如下:

session_start();   //启动session
$timeOutLimit = "300";  //设置时间间断五分钟
if (isset($_SESSION["timeout"])) {  //判断是否有session
    if (time() - $_SESSION["timeout"] <</span> $timeOutLimit) {    
    //如果有session 且session时间间隔小于5分钟 直接die()退出并输出提示信息。
       die("请不要多次刷新当前页面");
    } else {    //如果没有超时,将session时间重置为当前时间。
       $_SESSION["timeout"] = time();
    }
} else {
    $_SESSION["timeout"] = time();  
    //如果没有timeout的session,则创建session为当前时间,便于下次访问页面时判断
}
//其它页面代码.....

方法2:

//代理IP直接退出
empty($_SERVER[&#39;HTTP_VIA&#39;]) or exit(&#39;Access Denied&#39;);
//防止快速刷新
session_start();
$seconds = &#39;3&#39;; //时间段[秒]
$refresh = &#39;5&#39;; //刷新次数
//设置监控变量
$cur_time = time();
if(isset($_SESSION[&#39;last_time&#39;])){
    $_SESSION[&#39;refresh_times&#39;] += 1;
}else{
    $_SESSION[&#39;refresh_times&#39;] = 1;
    $_SESSION[&#39;last_time&#39;]     = $cur_time;
}
//处理监控结果
if($cur_time - $_SESSION[&#39;last_time&#39;] < $seconds){
    if($_SESSION[&#39;refresh_times&#39;] >= $refresh){
        //跳转至攻击者服务器地址
        header(sprintf(&#39;Location:%s&#39;, &#39;http://127.0.0.1&#39;));
        exit(&#39;Access Denied&#39;);
    }
}else{
    $_SESSION[&#39;refresh_times&#39;] = 0;
    $_SESSION[&#39;last_time&#39;] = $cur_time;
}

相关教程推荐:《PHP教程

以上是php怎么禁止页面刷新?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn