Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Schritte geben, um eine wiederholte Übermittlung von Formularen mit PHP+Session zu verhindern. Welche Vorsichtsmaßnahmen gibt es für PHP+Session, um eine wiederholte Übermittlung zu verhindern? Hier sind praktische Fälle. Stehen Sie auf und werfen Sie einen Blick darauf.
index.php
Die aktuelle Formularseite is_submit ist auf 0 gesetzt
SESSION_START(); $_SESSION['is_submit'] = 0; <form id="reg" action="post.php" method="post"> <p>用户名:<input type="text" class="input" name="username" id="user"></p> <p>密 码:<input type="password" class="input" name="password" id="pass"></p> <p>E-mail:<input type="text" class="input" name="email" id="email"></p> <p><input type="submit" name="submit" class="btn" value="提交注册"/></p> </form>
post.php
Wenn das Formular ist übermittelt, eingestellt Derzeit ist 'is_submit 1, wenn post.php aktualisiert wird, wird der else-Code ausgeführt
SESSION_START(); if (isset($_POST['submit'])) { if ($_SESSION['is_submit'] == '0') { $_SESSION['is_submit'] = '1'; echo "代码块,要做的事,代码...<a onclick='history.go(-1);' href='javascript:void(0)'>返回</a>"; } else { echo "请不用重复提交<a href='index.php'>PHP+SESSION防止表单重复提交</a>"; } }
php Einführung in die Lösung des Problems der wiederholten Übermittlung von Formularen
[Einführung] Wiederholte Übermittlungen sind ein Problem, auf das wir in der Entwicklung häufig stoßen. Zusätzlich zur Verwendung von js, um wiederholte Übermittlungen von Formularen zu verhindern, können wir auch PHP verwenden, um wiederholte Übermittlungen zu verhindern.
Beispiel 1 Der Code lautet wie folgt
Doppelte Übermittlung ist ein Problem, auf das wir in der Entwicklung häufig stoßen. Zusätzlich zur Verwendung von js, um wiederholte Übermittlungen von Formularen zu verhindern, können wir auch PHP verwenden, um wiederholte Übermittlungen zu verhindern Unterwerfung.
Beispiel 1
Der Code lautet wie folgt
<?php /* * php中如何防止表单的重复提交 */ session_start(); if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫 //...........//写入数据库操作 } else {//已经有第一次写入后的操作,也就不再写入数据库 echo '请不要再次刷新和后退'; //写一些已经写入的提示或其它东西 } ?>
Das spezifische Prinzip
Session Scope Variable Token zur Verhinderung.
1. Offene Sitzung:
session_start();
2. Wenn ein Formular gesendet wird
Kopieren Sie den Code wie folgt
if (isset($token))
Token ist im Formular in versteckter Form enthalten.
Der Code lautet wie folgt. Kopieren Sie den Code
<input type="hidden" name="token" value="<?php echo $token; ?>" />
3. Wenn das Formular wiederholt gesendet wird
Der Code lautet wie folgt
if ($_SESSION["token"] != $token) { // 不让重复提交,在此处理 // header("location:".$_SERVER['PHP_SELF']); } else { // 正常的表单提交,在此处理 // echo "已提交"; }
4. Festlegen der Token-Wert
Der Code lautet wie folgt
$token = mt_rand(0,1000000); $_SESSION['token'] = $token;
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln zum Thema php Chinesische Website!
Empfohlene Lektüre:
Detaillierte Erklärung der Schritte zum Ausschneiden und Zusammenführen großer Dateien mit PHP
Detaillierte Erklärung der Schritte für den Datenbankbetrieb mit PHP+MongoDB Fälle)
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zur Verhinderung wiederholter Formularübermittlungen mithilfe von PHP+Session. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!