Maison > Article > développement back-end > Que faire si le code de vérification n'est pas synchronisé en php
Le code de vérification en php n'est pas synchronisé car lorsque la page charge la page login.php, le chargement de l'image est asynchrone avec le chargement d'autres balises, donc d'autres informations de balise sont chargées en premier, puis l'image est chargée.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Que dois-je faire si le code de vérification n'est pas synchronisé ?
Résout parfaitement le problème de désynchronisation de la session de code de vérification PHP
Chaque développeur a ressenti le sentiment d'être torturé par des phénomènes étranges. Que dois-je dire ? J'ai essayé de trouver la raison mais je ne l'ai pas trouvée, et j'ai essayé de la résoudre mais je n'ai pas pu. Parlons ensuite du code de vérification PHP étrange. .
Laissez-moi d'abord vous donner une photo, je pense que vous pouvez aussi avoir l'air familier. .
Vous constaterez que les deux valeurssont réellement différentes. Comment vérifier qu'elles sont différentes ? ? ? ? ?
Depuis, j'ai trouvé la raison sur Internet : lorsque la page charge la page login.php, le chargement de l'image est asynchrone avec le chargement des autres balises, donc les autres informations de balises sont chargées en premier, puis le src ( image) est chargé Non. La synchronisation entraîne également une désynchronisation du « code de vérification ».
Je connais la raison. En tant que débutant, je ne sais toujours pas par où commencer après avoir lu les solutions écrites par d'autres. .
Enfin, par hasard, j'ai trouvé la réponse à partir d'un projet. .
En fait, la solution est très simple, peu importe que les valeurs affichées soient les mêmes ou non, par exemple. .
Page de connexion login.php
<form action="login_check.php" method="post"> 验证码: <input name="checkcode" type="text" /><img src="yan.php" alt="看不清?点击更换" style="max-width:90%" onClick="this.src=this.src+'?'" />//yan.php是生成验证码的页面。 </form>
Page de vérification login_check.php
<?php session_start();//开启session $checkcode= strtolower($_POST["checkcode"]);//获取验证码文本框的值 echo $checkcode;//输出验证码文本框的值 echo $_SESSION['VerifyCode']//输出yan.php输出的值 ?>
Après la soumission, vous serez surpris de constater que si j'entre la même valeur dans login.php que la valeur générée pour générer le code de vérification, alors la sortie dans login_check.php Les deux valeurs sont les mêmes lettres à l'exception des majuscules et des minuscules.
Bien sûr, nous pouvons résoudre le problème de la capitalisation et de la capitalisation.
Cela dit, je crois que même si le problème de désynchronisation est résolu
Bien sûr, je sais que certaines personnes qui recherchent le plus la perfection aiment utiliser ajax. Selon leurs préférences personnelles, l'écran scintille en arrière. et ainsi de suite, ce qui n'a pas l'air très bien. Cependant, si vous utilisez ajax, ne le soumettez pas à cette page, sinon il ne sera pas vérifié. Il n'y a aucun problème de vérification asynchrone via un fichier externe.
Apprentissage recommandé : "Tutoriel vidéo 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!