Heim > Backend-Entwicklung > PHP-Tutorial > Lösung für PHP, das eine Sitzung hinzufügt, um das wiederholte Senden von Formularen zu verhindern

Lösung für PHP, das eine Sitzung hinzufügt, um das wiederholte Senden von Formularen zu verhindern

不言
Freigeben: 2023-03-23 11:32:01
Original
1257 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Lösung von PHP+Session vor, um das wiederholte Senden von Formularen zu verhindern. Jetzt können Freunde, die sie benötigen, darauf verweisen

index.php

Die aktuelle Formularseite is_submit wird 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>
Nach dem Login kopieren

post.php

Wenn das Formular gesendet wird , setze das aktuelle 'is_submit auf 1 , wenn post.php aktualisiert wird, wird der else-Code ausgeführt

SESSION_START(); 
if (isset($_POST[&#39;submit&#39;])) { 
  if ($_SESSION[&#39;is_submit&#39;] == &#39;0&#39;) { 
    $_SESSION[&#39;is_submit&#39;] = &#39;1&#39;; 
    echo "代码块,要做的事,代码...<a onclick=&#39;history.go(-1);&#39; href=&#39;javascript:void(0)&#39;>返回</a>"; 
  } else { 
    echo "请不用重复提交<a href=&#39;index.php&#39;>PHP+SESSION防止表单重复提交</a>"; 
  } 
}
Nach dem Login kopieren

PHP Einführung in die Lösung des Problems der wiederholten Formularübermittlung

[Einführung] Die wiederholte Übermittlung ist ein Problem, auf das wir in der Entwicklung häufig stoßen. Zusätzlich zur Verwendung von js können wir die wiederholte Übermittlung von Formularen verhindern Verwenden Sie PHP, 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[&#39;ip&#39;])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库
  $_SESSION[&#39;ip&#39;] = $_SERVER[&#39;REMOTE_ADDR&#39;]; //第一次写入,为后面刷新或后退的判断做个铺垫
  //...........//写入数据库操作
} else {//已经有第一次写入后的操作,也就不再写入数据库
  echo &#39;请不要再次刷新和后退&#39;; //写一些已经写入的提示或其它东西
}
 ?>
Nach dem Login kopieren

Spezifisches Prinzip

Sitzungsbereich Variables Token, das verhindert werden soll.

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; ?>" />
Nach dem Login kopieren

3. Wenn das Formular wiederholt gesendet wird

Das Der Code lautet wie folgt:

if ($_SESSION["token"] != $token) { 
  // 不让重复提交,在此处理 
  // header("location:".$_SERVER[&#39;PHP_SELF&#39;]); 
 } else { 
  // 正常的表单提交,在此处理 
  // echo "已提交";  
}
Nach dem Login kopieren

4. Tokenwert festlegen

Der Code lautet wie folgt

$token = mt_rand(0,1000000);
$_SESSION[&#39;token&#39;] = $token;
Nach dem Login kopieren

Verwandte Empfehlungen:                                                                                                                                                                                                                                                                

Ausführliche Erläuterung der Prinzipien und der Verwendung von PHP-Sitzungen                                                                                                                                                                                                                                                       

Das obige ist der detaillierte Inhalt vonLösung für PHP, das eine Sitzung hinzufügt, um das wiederholte Senden von Formularen zu verhindern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage