Cet article présente principalement en détail la vérification en temps réel du code de vérification à l'aide de PHP+Ajax. Les amis intéressés peuvent se référer à
La puissante fonction de traitement d'image de PHP peut créer une image de code de vérification. , mais lors de la mise en œuvre de la vérification en temps réel, j'ai rencontré un problème :
J'ai utilisé nat123 pour mapper le port du site Web sur mon ordinateur afin d'accéder au réseau externe. À l'origine, j'utilisais des cookies pour utiliser js. Le code de vérification a été vérifié, mais. après inspection, il a été constaté que bien que nat123 permette d'accéder à mon site Web via une URL personnalisée, l'emplacement du fichier php qui génère le code de vérification sur le réseau n'est pas dans le même domaine que les autres pages. Après interrogation, j'ai découvert. , en raison de l'image de sortie, elle est mappée dans un certain dossier en tant que fichier cache, donc - d'autres pages se trouvent sous mon URL et la page qui génère le code de vérification se trouve dans une autre URL, donc leurs cookies ne peuvent pas être partagés, peu importe. comment j'ai défini le chemin et le domaine, cela n'a pas fonctionné, j'ai donc dû utiliser la session pour stocker le code de vérification, car la session existe sur le serveur, c'est-à-dire qu'elle est accessible sur mon site Web local.
La prochaine étape est l'événement principal. Je n'ai eu qu'une compréhension approximative d'ajax auparavant, et je connais encore ses utilisations et ses caractéristiques. Cependant, je ne sais pas par où commencer à utiliser le concept relativement général d'obtention de données. l'arrière-plan.
Tout d'abord, j'ai analysé le code d'un exemple de question pour obtenir le contenu d'un fichier texte en arrière-plan :
function getHTTPObject(){ if(typedef XMLHttpRequest == "undefined") XMLHttpRequest = function(){ try{ return new ActiveXObject("Msxml2.XMLHTTP.6.0");} catch(e){} try{ return new ActiveXObject("Msxml2.XMLHTTP.3.0");} catch(e){} try{ return new ActiveXObject("Msxml2.XMLHTTP");} catch(e){} return false; } return new XMLHttpRequest(); } function getNewContent(){ var request = getHTTPObject(); if(request){ request.open("GET","TEST.txt",true); request.onreadystateschange = function(){ alert(request.responseText); } }else{ alert("no support XMLHttpRequest!"); } }
La clé est :
request.open("GET","TEST.txt",true); request.onreadystateschange =function(){ alert(request.responseText); }
Ces trois phrases précisent la page à laquelle la requête GET est envoyée et la fonction de traitement qui est déclenchée lorsque l'objet XMLHttpRequest renvoie la réponse, et les données sont transmises via Obtenu par request.responseText.
------------------------------------------------------ ------ ------------------------------------
Mais le les données que je veux obtenir sont l'arrière-plan. Comment laisser l'arrière-plan envoyer le code de vérification pour le code de vérification généré par le fichier php ?
Quelle que soit la méthode GET ou POST, les données sont envoyées en arrière-plan. Où ajax récupère-t-il les données en arrière-plan ?
Perplexe, j'ai consulté un autre livre et trouvé un exemple :
L'instruction de traitement de la réponse renvoyée par l'objet XMLHttpRequest est :
request.onreadystateschange=alertContent; function alertContent(){ ... alert(request.responseText); ... }
Le fichier demandé est check.php
Il contient plusieurs sorties conditionnelles :
if($info){ echo "你的用户名可以使用"; }else { echo "该用户名已被注册"; }
et exécutez Dans l'exemple de rendu, un message apparaît sur la page statique, avec le contenu tel que la sortie de la page check.php ! ! !
C'est-à-dire que ajax peut demander le contenu de sortie d'une page php, donc l'étape suivante est beaucoup plus simple. Parce que l'image est également la sortie de la page de codes de vérification, vous ne pouvez pas directement ajaxer la page de codes de vérification, sinon. les données de l'image seront également obtenues.
Créez une nouvelle page php :
sission_start(); $code=""; if(!empty($_session['check']))$code=$_session['check']; echo $code;
Ensuite, utilisez ajax sur le front-end pour faire une requête GET sur cette page, et vous pourrez utiliser request.responseText pour obtenir le code de vérification.
Encapsulez ensuite le processus de vérification dans une fonction déclenchée par certaines conditions, afin de pouvoir le vérifier en temps réel.
Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Explication détaillée du développement de sites interactifs simples PHP MYSQL
Implémentation PHP est simple Méthodes de chargement ajax fonction de chargement
phpMéthodes d'implémentation du texte et des vignettes du filigrane
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!