Maison > développement back-end > tutoriel php > Solution à PHP ajoutant une session pour empêcher la soumission répétée de formulaires

Solution à PHP ajoutant une session pour empêcher la soumission répétée de formulaires

不言
Libérer: 2023-03-23 11:32:01
original
1258 Les gens l'ont consulté

Cet article présente principalement la solution PHP+Session pour éviter la soumission répétée de formulaires. Maintenant, je le partage avec vous. Les amis qui en ont besoin peuvent s'y référer

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>
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é, le code else sera exécuté

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

PHP introduction à la résolution du problème de la soumission répétée 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. utilisez php pour éviter les soumissions répétées.

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[&#39;ip&#39;])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库
  $_SESSION[&#39;ip&#39;] = $_SERVER[&#39;REMOTE_ADDR&#39;]; //第一次写入,为后面刷新或后退的判断做个铺垫
  //...........//写入数据库操作
} else {//已经有第一次写入后的操作,也就不再写入数据库
  echo &#39;请不要再次刷新和后退&#39;; //写一些已经写入的提示或其它东西
}
 ?>
Copier après la connexion

Principe spécifique

plage de session Jeton variable à 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; ?>" />
Copier après la connexion

3. Si le formulaire est soumis à plusieurs reprises

Le le code est le suivant

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

4. Définir la valeur du jeton

Le code est le suivant

$token = mt_rand(0,1000000);
$_SESSION[&#39;token&#39;] = $token;
Copier après la connexion

Recommandations associées :                                                                                                                                                                                                                                                                                                            

Explication détaillée des principes de développement et d'utilisation de sessions 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