PHP+Ajax implémente la fonction de vérification en temps réel du code de vérification

墨辰丷
Libérer: 2023-03-29 10:02:01
original
1478 Les gens l'ont consulté

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

La clé est :

  request.open("GET","TEST.txt",true);
    request.onreadystateschange =function(){
      alert(request.responseText);
    }
Copier après la connexion

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

Le fichier demandé est check.php
Il contient plusieurs sorties conditionnelles :

if($info){
  echo "你的用户名可以使用";
}else {
  echo "该用户名已被注册";
}
Copier après la connexion

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

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!

É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