Home  >  Article  >  Backend Development  >  How to prevent page refresh in php?

How to prevent page refresh in php?

青灯夜游
青灯夜游Original
2020-07-21 15:26:353060browse

Method: Determine whether there is a session when accessing the page. If not, create a session directly and set it to the current time. The program will execute normally; if there is a session, determine the time difference between the time in the session and the current time. , if the interval is less than the specified time, program execution is interrupted.

How to prevent page refresh in php?

php method to prohibit page refresh

Method 1:

A small piece of code to prevent page refresh may not be of much use, it is just an idea for reference.

Principle:

Determine whether there is a session when the page is accessed. If not, create a session directly and set it to the current time. The program will execute normally;

If there is session, determine the time difference between the time in the session and the current time. If the interval is less than the specified time, such as 5 minutes in this example, the program execution will be interrupted and an error message will be prompted;

If the time in the session is greater than the current time time, refresh the time in the session, and the page will execute normally.

The code is as follows:

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为当前时间,便于下次访问页面时判断
}
//其它页面代码.....

Method 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;
}

Recommended related tutorials: "PHP Tutorial

The above is the detailed content of How to prevent page refresh in php?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn