Maison > développement back-end > tutoriel php > Solution PHP pour éviter la soumission répétée de formulaires

Solution PHP pour éviter la soumission répétée de formulaires

不言
Libérer: 2023-03-23 08:26:01
original
1219 Les gens l'ont consulté

Le contenu de cet article est une solution pour éviter la soumission répétée de formulaires en PHP. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent se référer au contenu de cet article

<br>

.

PHP+SESSION empêche la soumission répétée de formulaires

index.php

<br>

La page actuelle du formulaire is_submit est définie sur 0

SESSION_START(); $_SESSION['is_submit'] = 0;
Copier après la connexion
<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>
Copier après la connexion

post.php

Si le formulaire est soumis, définissez le 'is_submit actuel sur 1, si post.php est actualisé , alors le code else sera exécuté

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>";     } }
Copier après la connexion

<br>
Copier après la connexion
Copier après la connexion

Introduction à la façon de résoudre le problème de la soumission répétée de formulaires en php

[Introduction] La soumission répétée est quelque chose que nous développons Un problème que nous rencontrons souvent est qu'en plus d'utiliser js pour empêcher les soumissions répétées de formulaires, nous pouvons également utiliser php pour empêcher les soumissions répétées. Exemple 1 Le code est le suivant Copiez le code

La soumission répétée est un problème que nous rencontrons souvent en développement. En plus d'utiliser js pour empêcher la soumission répétée de formulaires, nous pouvons également utiliser php pour éviter les soumissions répétées. soumission. .

Exemple 1

Le code est le suivant Copier le code
 代码如下 复制代码

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

/*<🎜> * Comment empêcher le formulaire duplication en php Soumettre <🎜> */<🎜>session_start();<🎜>if (empty($_SESSION['ip'])) {//La première opération d'écriture, détermine si l'adresse IP est enregistrée, afin que pour savoir s'il faut écrire dans la base de données <🎜> $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //La première écriture ouvrira la voie à des décisions ultérieures d'actualisation ou de retrait<🎜> //... . .......//Opération d'écriture dans la base de données<🎜>} else {//Il y a eu une opération après la première écriture, elle ne sera donc plus écrite dans la base de données<🎜> echo 'Veuillez ne pas le faire. actualiser et revenir en arrière '; //Écrivez des invites déjà écrites ou d'autres choses<🎜>}<🎜>?>

<br>Principe spécifique

Le jeton variable de portée de session est utilisé pour empêcher cela.

1. Démarrer la session :

session_start();

2. Si un formulaire est soumis

Le code est le suivant
Copier le code
 代码如下 复制代码

if (isset($token))

if (isset($token))

<br>Le jeton est inclus dans le formulaire en masqué formulaire.
 代码如下 复制代码

Le code est le suivant Copier le code

<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. Si le formulaire est soumis à plusieurs reprises

Le code est le suivant Copier le code
1.if ($_SESSION["token"] != $token) {
 代码如下 复制代码

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

2 // N'autorisez pas les soumissions répétées, traitez ici 3. . // header("location :".$_SERVER['PHP_SELF']); 4.} else { 5. // Soumission du formulaire normal, traitée ici 6. "; 7.}
4. Définir la valeur du jeton
Le code est le suivant Copier le code
1.$token = mt_rand(0,1000000); 2.$_SESSION['token'] = $token;
<br>
Copier après la connexion
Copier après la connexion

<br>

<br>

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

<br>

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

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

相关推荐:

php防止表单重复提交详解

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

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

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal