Maison >développement back-end >tutoriel php >PHP implémente la fonction d'empêcher la soumission répétée de formulaires [basée sur la vérification des jetons]

PHP implémente la fonction d'empêcher la soumission répétée de formulaires [basée sur la vérification des jetons]

jacklove
jackloveoriginal
2018-06-22 15:52:501426parcourir

Cet article présente principalement la fonction d'empêcher la soumission répétée de formulaires en PHP et analyse les techniques de fonctionnement pertinentes de PHP basées sur la vérification des jetons pour empêcher la soumission répétée de formulaires. C'est très simple et pratique. Les amis dans le besoin peuvent s'y référer. it

L'exemple de cet article décrit comment PHP implémente la fonction permettant d'empêcher la soumission répétée de formulaires. Je le partage avec vous pour votre référence, comme suit :

Il existe de nombreuses façons d'empêcher la soumission répétée de formulaires, c'est pourquoi aujourd'hui je vais vous présenter comment empêcher efficacement la soumission répétée de formulaires en PHP.

Le code est très simple

Je pense que tout le monde est assez intelligent pour partager une petite démo avec vous, vous pouvez en tirer des leçons :

Code spécifique :


<?php
/*
* 2016年9月29日08:09:13
*/
session_start();
header("Content-Type: text/html;charset=utf-8");
function set_token() {
  $_SESSION[&#39;token&#39;] = md5(microtime(true));
}
function valid_token() {
  $return = $_REQUEST[&#39;token&#39;] === $_SESSION[&#39;token&#39;] ? true : false;
  set_token();
  return $return;
}
//如果token为空则生成一个token
if(!isset($_SESSION[&#39;token&#39;]) || $_SESSION[&#39;token&#39;]==&#39;&#39;) {
  set_token();
}
if(isset($_POST[&#39;web&#39;])){
  if(!valid_token()){
    echo "token error,请不要重复提交!";
  }else{
    echo &#39;成功提交,Value:&#39;.$_POST[&#39;web&#39;];
  }
}else{
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>PHP防止重复提交表单</title>
<meta name="keywords" content="PHP" />
<meta name="description" content="PHP防止重复提交表单" />
</head>
<body>
<p id="main">
  <p class="demo">
    <form method="post" action="">
      <input type="hidden" name="token" value="<?php echo $_SESSION[&#39;token&#39;]?>">
      <input type="text" class="input" name="web" value="脚本之家">
      <input type="submit" class="btn" value="提交" />
    </form>
  </p>
</p>
</body>
</html>
<?php }?>

Articles qui pourraient vous intéresser :

tp framework (thinkPHP) implémentation Exemple de verrouillage du compte après trois mots de passe de connexion incorrects

Implémentation PHP d'un exemple de fonction de génération de dictionnaire de données

Bases de la base de données du framework CodeIgniter Explications associées du fonctionnement

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!

Déclaration:
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