Maison >développement back-end >tutoriel php >Explication détaillée des étapes pour empêcher l'envoi répété de formulaires à l'aide de PHP+Session
Cette fois, je vais vous donner une explication détaillée des étapes pour éviter la soumission répétée de formulaires avec PHP+Session Quelles sont les précautions pour PHP+Session pour éviter des soumissions répétées. de formulaires. Voici des cas pratiques. Un Levez-vous et jetez un œil.
index.php
La page actuelle du formulaire is_submit est définie sur 0
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
Si le le formulaire est soumis, en supposant que le 'is_submit actuel est 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='history.go(-1);' href='javascript:void(0)'>返回</a>"; } else { echo "请不用重复提交<a href='index.php'>PHP+SESSION防止表单重复提交</a>"; } }
php Introduction à la résolution du problème des soumissions répétées de formulaires
[Introduction] 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 empêcher la soumission répétée.
Exemple 1 Le code est le suivant
La soumission en double 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
<?php /* * php中如何防止表单的重复提交 */ session_start(); if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫 //...........//写入数据库操作 } else {//已经有第一次写入后的操作,也就不再写入数据库 echo '请不要再次刷新和后退'; //写一些已经写入的提示或其它东西 } ?>
Le principe spécifique
jeton variable de portée de session à empêcher.
1. Session ouverte :
session_start();
2. Si un formulaire est soumis
Copiez le code comme suit
if (isset($token))
Le jeton est inclus dans le formulaire sous forme cachée.
Le code est le suivant Copiez le code
<input type="hidden" name="token" value="<?php echo $token; ?>" />
3. Si le formulaire est soumis à plusieurs reprises
Le code est le suivant
if ($_SESSION["token"] != $token) { // 不让重复提交,在此处理 // header("location:".$_SERVER['PHP_SELF']); } else { // 正常的表单提交,在此处理 // echo "已提交"; }
4. Définissez la valeur du jeton
Le code est le suivant
$token = mt_rand(0,1000000); $_SESSION['token'] = $token;
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez faire attention. vers d'autres articles connexes sur le site Web PHP chinois !
Lecture recommandée :
Explication détaillée des étapes pour couper et fusionner des fichiers volumineux avec PHP
Explication détaillée de la étapes pour le fonctionnement de la base de données PHP+mongoDB
sujet d'apprentissage du site Web chinois php : session php (comprenant des images, des textes, des vidéos, cas)
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!