Maison >php教程 >PHP开发 >PHP Ajax implémente la vérification en temps réel du code de vérification

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

高洛峰
高洛峰original
2016-12-23 17:33:001093parcourir

La fonction de traitement d'image de PHP est puissante et il est très simple de créer une image de code de vérification. Cependant, 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 porter le site Web sur mon ordinateur. . Le mappage permet l'accès au réseau externe. À l'origine, les cookies étaient utilisés pour vérifier le code de vérification à l'aide de js. Cependant, après inspection, il a été constaté que bien que nat123 permette d'accéder à mon site Web via une URL personnalisée, le fichier php qui génère le code de vérification. est dans L'emplacement sur le réseau n'est pas dans le même domaine que les autres pages. Après avoir interrogé, j'ai découvert qu'en raison de l'image de sortie, elle était mappée dans un certain dossier en tant que fichier cache, donc - d'autres pages sous mon URL étaient générées. codes de vérification. La page se trouve dans une autre URL, donc leurs cookies ne peuvent pas être partagés. Quelle que soit la manière dont j'ai défini le chemin et le domaine, cela ne fonctionne pas, j'ai donc dû utiliser la session pour stocker le code de vérification, car la session existe. le serveur, c'est-à-dire dans mon URL locale Peut être consulté.
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 Spécifie 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 que les données sont obtenues via 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 ?
Peu importe 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);
...
}

Fichier demandé Il existe plusieurs sorties conditionnelles pour check.php
 :

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

Dans le rendu de l'exemple en cours, une boîte de message apparaît sur la page statique, et le contenu est comme 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;

Utilisez ensuite ajax pour faire une requête GET sur cette page sur le front-end, et vous pouvez 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.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.

Pour plus d'articles liés à PHP Ajax implémentant la vérification en temps réel du code de vérification, veuillez faire attention au site Web PHP 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