Maison  >  Article  >  développement back-end  >  Comment empêcher la page d'être soumise à plusieurs reprises dans le système PHP Flash Kill

Comment empêcher la page d'être soumise à plusieurs reprises dans le système PHP Flash Kill

PHPz
PHPzoriginal
2023-09-19 09:01:57805parcourir

Comment empêcher la page dêtre soumise à plusieurs reprises dans le système PHP Flash Kill

Comment éviter les problèmes de soumission de duplication de pages dans le système de vente flash PHP

Avec l'essor du commerce électronique, diverses activités promotionnelles telles que les ventes flash, les ventes instantanées, etc. Lors de la mise en œuvre du système de vente flash, un problème important doit être résolu, à savoir la soumission répétée des pages. Cet article explique comment utiliser PHP pour écrire du code afin d'éviter la soumission répétée de problèmes sur la page et fournit des exemples de code spécifiques à titre de référence.

1. Pourquoi il est nécessaire d'éviter les soumissions répétées de pages

Dans le système de vente flash, les utilisateurs peuvent soumettre des commandes à plusieurs reprises, ce qui entraîne la commande d'un utilisateur par plusieurs produits, ou par la sélection d'un produit par plusieurs utilisateurs. Cela entraînera non seulement un gaspillage de ressources, mais affectera également l'expérience des autres utilisateurs et provoquera même un crash du système. Par conséquent, empêcher la soumission répétée de pages est la clé pour garantir le fonctionnement normal du système de vente flash.

2. Utilisez le mécanisme de jeton pour empêcher les soumissions de pages répétées

Le mécanisme de jeton est une méthode courante pour empêcher les soumissions de pages répétées. Les étapes spécifiques de mise en œuvre sont les suivantes :

  1. Générez un Token unique lorsque la page est chargée et enregistrez-le dans la session.
session_start();
$token = uniqid(); // 生成唯一Token
$_SESSION['token'] = $token; // 将Token保存在会话中
  1. Ajoutez un champ masqué dans le formulaire de page et transmettez la valeur du Token au serveur comme valeur de champ.
<form method="post" action="submit.php">
   <input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
   <!-- 其他表单字段 -->
   <input type="submit" value="提交">
</form>
  1. Vérifiez la validité du Token côté serveur.
session_start();
if ($_POST['token'] != $_SESSION['token']) {
   // Token无效,可能是重复提交
   // 处理重复提交的代码
} else {
   // Token有效,继续处理表单数据
   // 处理表单提交的代码
}

Grâce aux étapes ci-dessus, nous pouvons garantir que chaque soumission de formulaire ne peut utiliser un jeton valide qu'une seule fois, évitant ainsi les problèmes de soumission de page répétés.

3. Utilisez le délai d'expiration de la vérification pour éviter les soumissions répétées

En plus du mécanisme de jeton, l'utilisation du délai d'expiration de la vérification est également une méthode efficace pour empêcher la soumission répétée des pages. Les étapes spécifiques de mise en œuvre sont les suivantes :

  1. Générez une chaîne de vérification unique lorsque la page est chargée et enregistrez-la dans la session.
session_start();
$expire = time() + 60; // 设置验证串过期时间为60秒后
$hash = md5(uniqid()); // 生成唯一验证串
$_SESSION['hash'] = $hash;
$_SESSION['expire'] = $expire;
  1. Ajoutez une chaîne de validation et un délai d'expiration au formulaire.
<form method="post" action="submit.php">
   <input type="hidden" name="hash" value="<?php echo $_SESSION['hash']; ?>">
   <input type="hidden" name="expire" value="<?php echo $_SESSION['expire']; ?>">
   <!-- 其他表单字段 -->
</form>
  1. Vérifiez la validité et le délai d'expiration de la chaîne de vérification côté serveur.
session_start();
if ($_POST['hash'] != $_SESSION['hash'] || time() > $_SESSION['expire']) {
   // 验证串无效或已过期,可能是重复提交
   // 处理重复提交的代码
} else {
   // 验证串有效且未过期,继续处理表单数据
   // 处理表单提交的代码
}

En définissant l'heure d'expiration de la chaîne de vérification, nous pouvons garantir que le formulaire est valide dans une certaine plage de temps et qu'il sera considéré comme invalide après l'heure spécifiée.

4. Résumé

Lors de la mise en œuvre du système PHP Flash Killer, empêcher la soumission répétée de pages est une mesure de sécurité importante. Cet article présente deux méthodes couramment utilisées pour empêcher les soumissions répétées de pages, à savoir le mécanisme de jeton et le délai d'expiration de la vérification. En utilisant ces méthodes de manière rationnelle, vous pouvez prévenir efficacement les problèmes de soumission de pages et améliorer la sécurité et la stabilité du système.

(Remarque : le code ci-dessus n'est qu'un exemple et la mise en œuvre spécifique doit être ajustée en fonction des besoins réels de l'entreprise.)

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