Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Lösung, um das wiederholte Absenden von Formularen zu verhindern

PHP-Lösung, um das wiederholte Absenden von Formularen zu verhindern

不言
不言Original
2018-04-04 14:30:031148Durchsuche

Der Inhalt dieses Artikels ist eine Lösung, um das wiederholte Senden von Formularen in PHP zu verhindern. Jetzt können Freunde in Not auf den Inhalt dieses Artikels verweisen

<br>

PHP+SESSION verhindert das wiederholte Absenden von Formularen

index.php

<br>

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 gesendet wird, setzen Sie das aktuelle „is_submit“ auf 1, wenn post.php aktualisiert wird , dann wird der else-Code ausgeführt

SESSION_START(); if (isset($_POST['submit'])) {     if ($_SESSION['is_submit'] == '0') {         $_SESSION['is_submit'] = '1';         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>";     } }

<br>

Einführung in die Lösung des Problems der wiederholten Übermittlung von Formularen in PHP

[Einführung] Wiederholte Übermittlungen sind etwas, das wir entwickeln. Ein Problem, auf das wir häufig stoßen, besteht darin, dass wir nicht nur js verwenden, um wiederholte Übermittlungen von Formularen zu verhindern, sondern auch PHP verwenden können, um wiederholte Übermittlungen zu verhindern. Beispiel 1 Der Code lautet wie folgt: Kopieren Sie den Code

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 Vorlage. .

Beispiel 1

Der Code lautet wie folgt Code kopieren
 代码如下 复制代码

/*
* php中如何防止表单的重复提交
*/
session_start();
if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫
//...........//写入数据库操作
} else {//已经有第一次写入后的操作,也就不再写入数据库
echo '请不要再次刷新和后退'; //写一些已经写入的提示或其它东西
}
?>

/*<🎜> * So verhindern Sie Formulare Duplizierung in PHP Submit <🎜> */<🎜>session_start();<🎜>if (empty($_SESSION['ip'])) {//Bestimmen Sie beim ersten Schreibvorgang, ob die IP-Adresse aufgezeichnet wird, z um zu wissen, ob in die Datenbank geschrieben werden soll <🎜> $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'] //Der erste Schreibvorgang ebnet den Weg für nachfolgende Aktualisierungs- oder Rückzugsentscheidungen<🎜> //... .......//Schreibvorgang in die Datenbank<🎜>} else {//Nach dem ersten Schreibvorgang hat ein Vorgang stattgefunden, daher wird er nicht mehr in die Datenbank geschrieben<🎜> echo 'Bitte nicht aktualisieren und wieder zurückfahren '; //Einige bereits geschriebene Eingabeaufforderungen oder andere Dinge schreiben<🎜>}<🎜>?>

<br>Spezifisches Prinzip

Um dies zu verhindern, wird ein Variable-Token für den Sitzungsbereich verwendet.

1. Sitzung starten:

session_start();

2. Wenn ein Formular gesendet wird

Der Code lautet wie folgt Code kopieren
 代码如下 复制代码

if (isset($token))

if (isset($token))

<br>Token ist im Formular versteckt enthalten bilden.
 代码如下 复制代码

Der Code lautet wie folgt Code kopieren

<br>

 代码如下 复制代码

1.if ($_SESSION["token"] != $token) { <br>2.    // 不让重复提交,在此处理 <br>3.    // header("location:".$_SERVER['PHP_SELF']); <br>4.} else { <br>5.    // 正常的表单提交,在此处理 <br>6.    // echo "已提交";    <br>7.}

3. Wenn das Formular wiederholt gesendet wird

Der Code lautet wie folgt Code kopieren
1.if ($_SESSION["token"] != $token) {
 代码如下 复制代码

1.$token = mt_rand(0,1000000); <br>2.$_SESSION['token'] = $token;

2. // Keine wiederholten Übermittlungen zulassen, hier verarbeiten 3 . // header("location :".$_SERVER['PHP_SELF']); 4.} else { 5. // echo "Eingereicht "; 7.}
4. Token-Wert festlegen
Der Code lautet wie folgt Code kopieren
1.$token = mt_rand(0,1000000); 2.$_SESSION['token'] = $token;
<br>

<br>

<br>

此文链接:http://makaidong.com/kenshinobiy/22427_350409.html

<br>

转载请注明出处:PHP防止表单重复提交的解决方法

来源:马开东云搜索(电话:15110131480 微信:makaidongzi QQ:1130122167 微信公众号:makaidong-com)<br>       欢迎分享本文,转载请保留出处!

相关推荐:

php防止表单重复提交详解

PHP防止表单重复提交以及表单过期处理

PHP防止表单重复提交的几种常用方法汇总

Das obige ist der detaillierte Inhalt vonPHP-Lösung, um das wiederholte Absenden von Formularen zu verhindern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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