Dieser Artikel stellt Ihnen die Schritte zum Implementieren des Verifizierungscodes in PHP und den serverseitigen Verifizierungscode vor. Ich hoffe, dass er für Sie hilfreich ist.
Was ist der Bestätigungscode: Der Bestätigungscode ist ein öffentliches Programm, das unterscheidet, ob der Benutzer ein Computer oder ein Mensch ist
Die Erstellung eines Bestätigungscodes erfordert vier Schritte
1 : Basiskarte generieren
2: Verifizierungsinhalt generieren
3: Verifizierungscodeinhalt generieren
4: Verifizierungsinhalt überprüfen
Erster Schritt , der erste Schritt, Basiskarte generieren:
Ziel: Generieren Sie ein Bild der Größe 100*30 über PHP
Methode: imagecreatetruecolor($width,$height);
Hinweis: Verlassen Sie sich auf die GD-Erweiterung
Vor der Ausgabe des Bildes müssen die Header-Informationen dieses Bildes im Voraus ausgegeben werden.-》》Senden Sie den nativen HTTP-Header
Diese Methode gibt ein Schwarz aus Hintergrund standardmäßig
imagecreatetruecolor() Erstellt ein neues Echtfarbenbild, dargestellt durch $image. Später werden viele Parameter verwendet
Was bedeutet es, Bildfüllung zu füllen (Leinwand auswählen, Startposition, Farbe)
Herzlichen Glückwunsch, das Basisbild ist generiert, beginnen wir mit dem Hinzufügen einiger Zutaten
$image = imagecreatetruecolor(100,30)
$bgcolor = imagecolorallocate( $image,255,255,255);
imagefill($image,0,0,$bgcolor)
Schritt 2: Verifizierungsinhalt generierenZiel: Zahlen zufällig generieren (Größe, Startposition, Inhalt, Farbe)
Methode: Erzeugen Sie eine Reihe von Zeichen horizontal durch Schleifen und Bildstring-Funktionen. String (entsprechend der Parameterposition im Bildstring ausfüllen)
Hinweis: Kontrollieren Sie die Schriftgröße, N/n
for($i=0;$<4;i++){
Hier definieren Sie Variablen entsprechend den Parametern im Bildstring und weisen sie zu Werte in Variablen
imagestring($image,$fontsze,$x,$y,$fontcontent,$fontcolor)
}
$fontcontent = substr($data,rand(0,strlen($data)),1);Wenn Sie eine Kombination aus Zahlen und Buchstaben wünschen, bedeutet die substr-Methode, einen Teilstring der zurückgegebenen Zeichenfolge zurückzugeben Die Zeichenfolge erhält ab jetzt eine Länge von bis zu 1
Der dritte Schritt generiert den Verifizierungscode-Inhalt
Ziel: Interferenzelemente zum Verifizierungscode hinzufügen sind Punkte oder Linien
Methode: imagesetpixel point, imageline-line (Ressourcendatei, Startposition, Farbe)
Hinweise: Interferenzelemente Achten Sie darauf, die Farbe und Menge zu kontrollieren, um den Gast nicht zu überfordern
Schritt 4: Speichern Sie die Verifizierungsinformationen während der Sitzung
Ziel: Auf der Serverseite aufzeichnen, um die Verifizierung zu erleichtern, nachdem der Benutzer den Verifizierungscode eingegeben hat
Methode: session_start()
Hinweis: session_start() muss am Anfang des Skripts stehen
Bei mehreren Diensten sollte eine zentrale Verwaltung der Sitzungsverwaltung in Betracht gezogen werden
imagepng Geben Sie das Bild aus an den Browser oder eine Datei im PNG-Format
imagedestroy Zerstöre das Bild Gute Angewohnheit
Bei diesen Methoden werden viele Ressourcen verwendet, das heißt, jede Methode erfordert die $image-Leinwand
<php? $image = imagecreatetruecolor( 100,30); $bgcolor = imagecolorallocate($image,255,255,255); imagefill($image,0,0,$bgcolor); // for($i=0;$i<4;$i++){ // $fontsize = 6; // $fontcolor = imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120)); // $fontcontent = rand(0,9); // $x = ($i*100/4)+rand(5,10); // $y = rand(5,10); // imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor ); // } $captch_code= ''; for($i=0 ;$i<4;$i++){ $fontsize = 6; $fontcolor = imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120)); $data = 'abcdefhijkimnpqrstuvwxy345678'; $fontcontent = substr($data,rand(0,strlen($data)),1); $captch_code.=$fontcontent; $x = ($i*100/4)+rand(5,10); $y = rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor ); } $SESSION['authcode']=$captch_code; for($i=0;$i<200;$i++){ $pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200)); imagesetpixel($image,rand(1,99),rand(1,99),$pointcolor); } for($i=0;$i<3;$i++){ $linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220)); imageline($image,rand(1,99),rand(1,99),rand(1,99),rand(1,99),$pointcolor); } header('content-type: image/png'); imagepng( $image); //end; imagedestroy( $iamge); ?>
Das ist alles für die Erstellung des Verifizierungscodes. Der nächste Schritt besteht darin, die Verifizierung auf der Serverseite durchzuführen
src="captcha-2.php?r=<?php echo rand();?>" 对于这个r 找了资料,没什么大用
Er verwendet hier auch t, also r ah t ah
In Anbetracht des Falls wird hier strtolower() verwendet, um alle vom Benutzer eingegebenen Großbuchstaben in Kleinbuchstaben umzuwandeln
<?php if(isset($_REQUEST['code'])) { session_start(); if (strtolower($_REQUEST['code'])==$_SESSION['code']) { header('Content-type: text/html; charset=UTF8'); echo '<h1 color="#0000CC">输入正确</h1>'; } else{ header('Content-type: text/html; charset=UTF8'); echo '<h1 color="#CC0000"><b>输入错误</b></h1>'; } exit(); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>确认验证</title> </head> <body> <form method="post" action="form.php"> <p>验证码图片:<img border="1" src="captcha-2.php?r=<?php echo rand();?>" width="100" height="30"> </p> <p>请输入图片的内容:<input type="text" name="code" value=""/></p> <p><input type="submit" value="提交" style="padding:6px 20px;"></p> </form> </body> </html>
Empfohlene verwandte Artikel:
So verwenden Sie PHP, konvertiert den Inhalt der TXT-Datei in ein Array und erhält den angegebenen Inhalt anhand der Zeilennummer (Beispiel) Wie verwendet PHP Längen- und Breitengrade, um den Abstand zwischen zu berechnen? zwei Punkte (reiner Code) Codebeispiel zum Löschen eines Verzeichnisses und aller Dateien im Verzeichnis in PHPDas obige ist der detaillierte Inhalt vonPHP-Schritte zum Implementieren des Verifizierungscodes und des serverseitigen Verifizierungscodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!