Maison >développement back-end >Problème PHP >Comment empêcher l'actualisation de la page en php ?
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 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['HTTP_VIA']) or exit('Access Denied'); //防止快速刷新 session_start(); $seconds = '3'; //时间段[秒] $refresh = '5'; //刷新次数 //设置监控变量 $cur_time = time(); if(isset($_SESSION['last_time'])){ $_SESSION['refresh_times'] += 1; }else{ $_SESSION['refresh_times'] = 1; $_SESSION['last_time'] = $cur_time; } //处理监控结果 if($cur_time - $_SESSION['last_time'] < $seconds){ if($_SESSION['refresh_times'] >= $refresh){ //跳转至攻击者服务器地址 header(sprintf('Location:%s', 'http://127.0.0.1')); exit('Access Denied'); } }else{ $_SESSION['refresh_times'] = 0; $_SESSION['last_time'] = $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!