Maison >développement back-end >Problème PHP >Comment empêcher l'actualisation de la page en php ?

Comment empêcher l'actualisation de la page en php ?

青灯夜游
青灯夜游original
2020-07-21 15:26:353101parcourir

Méthode : Déterminez s'il y a une session lors de l'accès à la page. Sinon, créez une session directement et réglez-la sur l'heure actuelle. Le programme s'exécutera normalement s'il y a une session, déterminez le décalage horaire. entre l'heure de la session et l'heure actuelle, si l'intervalle est inférieur à l'heure spécifiée, l'exécution du programme est interrompue.

Comment empêcher l'actualisation de la page en php ?

Comment désactiver l'actualisation des pages en php

Méthode 1 :

Un petit morceau de code pour empêcher l'actualisation de la page n'est peut-être pas d'une grande utilité, c'est juste une idée pour référence.

Principe :

Déterminez s'il y a une session lors de l'accès à la page. Sinon, créez une session directement et réglez-la sur l'heure actuelle

.

S'il y a une session, déterminez le décalage horaire entre l'heure de la session et l'heure actuelle. Si l'intervalle est inférieur à l'heure spécifiée, comme 5 minutes dans cet exemple, l'exécution du programme sera interrompue et une erreur se produira. un message sera demandé ;

Si l'heure de la session est supérieure à l'heure actuelle, actualisez l'heure de la session et la page s'exécutera normalement.

Le code est le suivant :

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

Méthode 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;
}

Tutoriels associés recommandés : "PHP Tutoriel

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn