Heim Backend-Entwicklung PHP-Tutorial So verhindern Sie die Seitenaktualisierung in PHP

So verhindern Sie die Seitenaktualisierung in PHP

Jun 05, 2018 pm 04:17 PM

In diesem Artikel wird hauptsächlich beschrieben, wie Sie wiederholte Seitenaktualisierungen in PHP verhindern können. Ich hoffe, dass er für alle hilfreich ist.

Wie Sie verhindern können, dass die Seite wiederholt aktualisiert wird, lässt sich leicht durch die Verwendung einer Sitzung in der PHP-Umgebung erreichen.

Der Code von b.php

<?php

//只能通过post方式访问 
if ($_SERVER[&#39;REQUEST_METHOD&#39;] == &#39;GET&#39;) 
{header(&#39;HTTP/1.1 404 Not Found&#39;); die(&#39;亲,页面不存在&#39;);} 
session_start(); 
$fs1=$_POST[&#39;a&#39;]; 
$fs2=$_POST[&#39;b&#39;]; 
//防刷新时间,单位为秒 
$allowTime = 30; 
//读取访客ip,以便于针对ip限制刷新 
/*获取真实ip开始*/ 
if ( ! function_exists(&#39;GetIP&#39;)) 
{ 
function GetIP() 
{ 
static $ip = NULL; 
if ($ip !== NULL) 
{ 
return $ip; 
} 
if (isset($_SERVER)) 
{ 
if (isset($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])) 
{ 
$arr = explode(&#39;,&#39;, $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]); 
/* 取X-Forwarded-For中第x个非unknown的有效IP字符? */ 
foreach ($arr as $xip) 
{ 
$xip = trim($xip); 
if ($xip != &#39;unknown&#39;) 
{ 
$ip = $xip; 
break; 
} 
} 
} 
elseif (isset($_SERVER[&#39;HTTP_CLIENT_IP&#39;])) 
{ 
$ip = $_SERVER[&#39;HTTP_CLIENT_IP&#39;]; 
} 
else 
{ 
if (isset($_SERVER[&#39;REMOTE_ADDR&#39;])) 
{ 
$ip = $_SERVER[&#39;REMOTE_ADDR&#39;]; 
} 
else 
{ 
$ip = &#39;0.0.0.0&#39;; 
} 
} 
} 
else 
{ 
if (getenv(&#39;HTTP_X_FORWARDED_FOR&#39;)) 
{ 
$ip = getenv(&#39;HTTP_X_FORWARDED_FOR&#39;); 
} 
elseif (getenv(&#39;HTTP_CLIENT_IP&#39;)) 
{ 
$ip = getenv(&#39;HTTP_CLIENT_IP&#39;); 
} 
else 
{ 
$ip = getenv(&#39;REMOTE_ADDR&#39;); 
} 
} 
preg_match("/[\d\.]{7,15}/", $ip, $onlineip); 
$ip = ! empty($onlineip[0]) ? $onlineip[0] : &#39;0.0.0.0&#39;; 
return $ip; 
} 
} 
/*获取真实ip结束*/ 
$reip = GetIP(); 
//相关参数md5加密 
$allowT = md5($reip.$fs1.$fs2); 
if(!isset($_SESSION[$allowT])){ 
$_SESSION[$allowT] = time(); 
} 
else if(time() - $_SESSION[$allowT]-->$allowTime){ 
$_SESSION[$allowT] = time(); 
} 
//如果刷新过快,则直接给出404header头以及提示 
else {header(&#39;HTTP/1.1 404 Not Found&#39;); die(&#39;来自&#39;.$ip.&#39;的亲,您刷新过快了&#39;);} 
?>
Nach dem Login kopieren

Der Code ist nichts weiter als die Verschlüsselung der IP und der an die Seite übermittelten Daten, die per POST aktualisiert werden müssen Schreiben Sie es über die MD5-Verschlüsselung in die Sitzung und verwenden Sie es dann über die gespeicherte Sitzung, um das Aktualisierungsintervall zu bestimmen und festzustellen, ob eine Aktualisierung zulässig ist. Es ist zu beachten, dass sich die beiden Parameter „$fs1=$_POST['a'];“ auf die Parameter beziehen, die andere Seiten an die Seite übermitteln müssen durch die Post-Methode aktualisiert. Der Grund, warum diese Parameter zusätzlich zur IP hinzugefügt werden, besteht darin, unterschiedliche Post-Ergebnisse zu unterscheiden. (Tatsächlich soll die sogenannte Anti-Refresh verhindern, dass eine bestimmte Seite wiederholt übermittelt wird.)

Genauer gesagt, wenn der obige Code beispielsweise am Anfang der b.php-Seite platziert wird , wir haben auf der a.html-Seite Folgendes:

Code:

<!DOCTYPE> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>b.html</title> 
</head> 
<body> 
<form action="b.php" method="post" > 
<input type="hidden" id="a" name="a" value="a"/> 
<input type="hidden" id="b" name="b" value="b"/> 
<button name="" type="submit" >提交</button> 
</form> 
</body> 
</html>
Nach dem Login kopieren

Sie können sehen, dass die beiden auf dieser Seite übermittelten Parameter a und b genau die beiden Parameter in b sind. php (eigentlich sollte es umgekehrt sein, durch die Parameter der Übermittlungsseite bestimmt). Im vorherigen PHP-Code wurde festgelegt, dass auf die Seite, auf der die Daten übermittelt werden, nur per Post zugegriffen werden kann. Daher wird bei direkter Eingabe der Adresse eine 404-Header-Fehlerseite angezeigt. Die Seite kann nur per Post abgerufen werden Wenn der Beitrag aktualisiert wird, wird er mit einem eigenen Parameter versehen. Dadurch wird erreicht, dass die Aktualisierung jeder IP auf derselben Seite verhindert wird.

Darüber hinaus können wir einen Referrer hinzufügen, um die Quellwebsite auf der Seite zu bestimmen, die gepostet wird, um eine Cross-Site-Übermittlung zu verhindern. Der Referrer kann jedoch gefälscht werden, und Firefox und IE8 verlieren den Referrer oft aus unerklärlichen Gründen Wir werden diesen Code vorerst nicht hinzufügen.

Zusammenfassung : Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

PHP implementiert eine Methode zum Erzwingen des angegebenen Rückruftyps basierend auf Callable

PHP-Methode zum Lösen und Vermeiden der wiederholten Übermittlung von Formularformularen

Beispielfreigabe für eine einfache PHP-String-Filtermethode

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

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Apr 06, 2025 am 12:02 AM

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

See all articles