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

高洛峰
Libérer: 2016-12-23 17:33:00
original
1095 Les gens l'ont consulté

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

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

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

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

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 !

É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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal