Die Bildverarbeitungsfunktion von PHP ist leistungsstark und es ist sehr einfach, ein Verifizierungscode-Bild zu erstellen. Bei der Implementierung der Echtzeitverifizierung bin ich jedoch auf ein Problem gestoßen:
Ich habe nat123 verwendet, um die Website auf meinen Computer zu portieren .Mapping ermöglicht den externen Netzwerkzugriff, um den Bestätigungscode mithilfe von js zu überprüfen. Bei der Überprüfung wurde jedoch festgestellt, dass nat123 den Zugriff auf meine Website über eine benutzerdefinierte URL zulässt befindet sich in Der Speicherort im Netzwerk befindet sich nicht in derselben Domäne wie andere Seiten. Nach einer Abfrage stellte ich fest, dass es aufgrund des Ausgabebilds als Cache-Datei in einem bestimmten Ordner zugeordnet war, sodass andere Seiten unter meiner URL generiert wurden Bestätigungscodes. Die Seite befindet sich in einer anderen URL, daher können ihre Cookies nicht geteilt werden, egal wie ich den Pfad und die Domäne festlege, es funktioniert nicht, also musste ich die Sitzung verwenden, um den Bestätigungscode zu speichern, da die Sitzung vorhanden ist Der Server ist in meiner lokalen URL erreichbar.
Der nächste Schritt ist das Hauptereignis. Ich habe bisher nur ein grobes Verständnis von Ajax und kenne seine Verwendung und Eigenschaften. Ich weiß jedoch nicht, wie ich mit dem relativ allgemeinen Konzept der Datenbeschaffung beginnen soll der Hintergrund.
Zuerst habe ich den Code einer Beispielfrage analysiert, um den Inhalt einer Textdatei im Hintergrund zu erhalten:
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 Die Daten, die ich erhalten möchte, sind der Hintergrund. Wie kann der Hintergrund den Bestätigungscode für den von der PHP-Datei generierten Bestätigungscode senden?
Unabhängig von der GET- oder POST-Methode werden Daten an den Hintergrund gesendet. Wo ruft Ajax die Daten aus dem Hintergrund ab?
Verwirrt habe ich ein anderes Buch konsultiert und ein Beispiel gefunden:
Die Verarbeitungsanweisung für die vom XMLHttpRequest-Objekt zurückgegebene Antwort lautet:
request.onreadystateschange=alertContent; function alertContent(){ ... alert(request.responseText); ... }
Angeforderte Datei Es gibt mehrere bedingte Ausgaben für check.php
:
if($info){ echo "你的用户名可以使用"; }else { echo "该用户名已被注册"; }
Beim Rendern des laufenden Beispiels wird auf der statischen Seite ein Meldungsfeld angezeigt, und der Inhalt entspricht der Ausgabe der check.php-Seite! ! !
Das heißt, Ajax kann den Ausgabeinhalt einer PHP-Seite anfordern, sodass der nächste Schritt viel einfacher ist. Da das Bild auch die Ausgabe der Bestätigungscodeseite ist, können Sie die Bestätigungscodeseite sonst nicht direkt ajaxen Die Daten des Bildes werden ebenfalls erfasst.
Erstellen Sie eine neue PHP-Seite:
sission_start(); $code=""; if(!empty($_session['check']))$code=$_session['check']; echo $code;
Dann verwenden Sie Ajax, um eine GET-Anfrage an diese Seite im Frontend zu stellen, und Sie können request.responseText verwenden, um den Bestätigungscode abzurufen.
Dann kapseln Sie den Verifizierungsprozess in eine Funktion, die durch bestimmte Bedingungen ausgelöst wird, sodass Sie ihn in Echtzeit verifizieren können.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.
Weitere Artikel zu PHP+Ajax, die die Echtzeitüberprüfung des Verifizierungscodes implementieren, finden Sie auf der chinesischen PHP-Website!