Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man die Seitenaktualisierung in PHP verhindern?

Wie kann man die Seitenaktualisierung in PHP verhindern?

青灯夜游
青灯夜游Original
2020-07-21 15:26:352980Durchsuche

Methode: Bestimmen Sie, ob beim Zugriff auf die Seite eine Sitzung vorhanden ist. Wenn nicht, erstellen Sie direkt eine Sitzung und stellen Sie sie auf die aktuelle Zeit ein. Wenn eine Sitzung vorhanden ist, ermitteln Sie den Zeitunterschied Wenn das Intervall zwischen der Zeit in der Sitzung und der aktuellen Zeit kleiner als die angegebene Zeit ist, wird die Programmausführung unterbrochen.

Wie kann man die Seitenaktualisierung in PHP verhindern?

So deaktivieren Sie die Seitenaktualisierung in PHP

Methode 1:

Ein kleiner Code zur Verhinderung der Seitenaktualisierung ist möglicherweise nicht von großem Nutzen, es handelt sich lediglich um eine Referenzidee.

Prinzip:

Stellen Sie fest, ob beim Zugriff auf die Seite eine Sitzung vorliegt, und stellen Sie sie auf die aktuelle Zeit ein.

Wenn eine Sitzung vorliegt, ermitteln Sie den Zeitunterschied zwischen der Zeit in der Sitzung und der aktuellen Zeit. Wenn das Intervall kürzer als die angegebene Zeit ist, wie in diesem Beispiel 5 Minuten, wird die Programmausführung unterbrochen und ein Fehler ausgegeben Es wird eine Meldung angezeigt.

Wenn die Zeit in der Sitzung größer als die aktuelle Zeit ist, aktualisieren Sie die Zeit in der Sitzung und die Seite wird normal ausgeführt.

Der Code lautet wie folgt:

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

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

Empfohlene verwandte Tutorials: „PHP Tutorial

Das obige ist der detaillierte Inhalt vonWie kann man die Seitenaktualisierung in PHP verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn