Heim  >  Artikel  >  Backend-Entwicklung  >  PHP Ajax implementiert die Echtzeitüberprüfung des Verifizierungscodes_php-Beispiels

PHP Ajax implementiert die Echtzeitüberprüfung des Verifizierungscodes_php-Beispiels

WBOY
WBOYOriginal
2016-08-04 08:56:44745Durchsuche

Die Bildverarbeitungsfunktion von PHP ist leistungsstark und es ist sehr einfach, ein Verifizierungscode-Bild zu erstellen. Bei der Implementierung der Echtzeitverifizierung ist jedoch ein Problem aufgetreten:
Ich habe nat123 verwendet, um die Website auf meinem Computer zu portieren, um den externen Zugriff zu ermöglichen. Ursprünglich habe ich Cookies verwendet, um den Bestätigungscode mithilfe von js zu überprüfen. Nach dem Testen habe ich jedoch festgestellt, dass nat123 meiner Website zwar die Übergabe einer benutzerdefinierten URL ermöglicht, aber Der Speicherort der PHP-Datei, die den Bestätigungscode im Netzwerk generiert, befindet sich nicht in derselben Domäne wie andere Seiten. Nach der Abfrage wurde festgestellt, dass sie aufgrund des Ausgabebilds einem bestimmten Ordner als Cache-Datei zugeordnet ist - —Andere Seiten befinden sich unter meiner URL und die Seite, die den Bestätigungscode generiert, befindet sich in einer anderen URL, daher können deren Cookies nicht geteilt werden. Egal wie ich den Pfad und die Domäne festlege, es funktioniert nicht, also muss ich sie verwenden Sitzung zum Speichern des Bestätigungscodes, da die Sitzung auf dem Server vorhanden ist, das heißt, auf meiner lokalen Website kann darauf zugegriffen werden.
Als nächstes kommt das Hauptereignis. Ich habe bisher nur ein grobes Verständnis von Ajax und kenne seine Verwendung und Eigenschaften. Ich weiß jedoch nicht, wie ich das relativ allgemeine Konzept der Datenbeschaffung aus dem Hintergrund anwenden soll.
Zuerst habe ich den Code einer Beispielfrage analysiert, mit der im Hintergrund der Inhalt einer Textdatei abgerufen wird:

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!");
  }
}

Der Schlüssel ist:

  request.open("GET","TEST.txt",true);
    request.onreadystateschange =function(){
      alert(request.responseText);
    }

Diese drei Sätze geben die Seite an, an die die GET-Anfrage gesendet wird, und die Verarbeitungsfunktion, die ausgelöst wird, wenn das XMLHttpRequest-Objekt die Antwort zurückgibt und die Daten über request.responseText abgerufen werden.

--------------------------------- --- ----------------------------------

Aber die Daten, die ich erhalten möchte, sind der Bestätigungscode, der von der Hintergrund-PHP-Datei generiert wird. Wie kann ich den Hintergrund den Bestätigungscode senden lassen?
Unabhängig von der GET- oder POST-Methode werden Daten an den Hintergrund gesendet. Wo ruft Ajax die Daten aus dem Hintergrund ab?
Verwirrt suchte ich nach einer anderen Quelle und fand ein Beispiel:
Die Verarbeitungsanweisung für die vom XMLHttpRequest-Objekt zurückgegebene Antwort lautet:

request.onreadystateschange=alertContent;
function alertContent(){
...
  alert(request.responseText);
...
}

Die angeforderte Datei ist check.php
Es gibt mehrere bedingte Ausgabesätze:

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

Beim Rendern des laufenden Beispiels erscheint auf der statischen Seite ein Meldungsfeld mit dem Inhalt wie der Ausgabe der check.php-Seite! ! !
Mit anderen Worten, Ajax kann den Ausgabeinhalt einer PHP-Seite anfordern, sodass der nächste Schritt viel einfacher ist. Da das Bild auch die Ausgabe der Bestätigungscodepage ist, können Sie die Bestätigungscodepage nicht direkt ajaxen, da sonst die Daten der Bild wird auch erhalten.
Erstellen Sie eine neue PHP-Seite:

sission_start();
$code="";
if(!empty($_session['check']))$code=$_session['check'];
echo $code;

Verwenden Sie dann Ajax, um eine GET-Anfrage an diese Seite im Frontend zu stellen, und Sie können request.responseText verwenden, um den Bestätigungscode abzurufen.
Anschließend wird der Verifizierungsprozess in eine Funktion gekapselt, die durch bestimmte Bedingungen ausgelöst wird, sodass er in Echtzeit verifiziert werden kann.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird. Ich hoffe auch, dass jeder Script House unterstützt.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn