Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Schritte zum Implementieren des Verifizierungscodes und des serverseitigen Verifizierungscodes

PHP-Schritte zum Implementieren des Verifizierungscodes und des serverseitigen Verifizierungscodes

不言
Freigeben: 2023-04-03 16:04:01
Original
2487 Leute haben es durchsucht

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 generieren

Ziel: 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= &#39;&#39;;
for($i=0 ;$i<4;$i++){
    $fontsize = 6;
    $fontcolor = imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
    $data = &#39;abcdefhijkimnpqrstuvwxy345678&#39;;
    $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[&#39;authcode&#39;]=$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(&#39;content-type: image/png&#39;);
imagepng( $image);
//end;
imagedestroy( $iamge);
?>
Nach dem Login kopieren

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 找了资料,没什么大用
Nach dem Login kopieren

Die ursprüngliche Absicht ist dies

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[&#39;code&#39;]))
{
    session_start();
    if (strtolower($_REQUEST[&#39;code&#39;])==$_SESSION[&#39;code&#39;])
    {
        header(&#39;Content-type: text/html; charset=UTF8&#39;);
        echo &#39;<h1 color="#0000CC">输入正确</h1>&#39;;
    }
    else{
        header(&#39;Content-type: text/html; charset=UTF8&#39;);
        echo &#39;<h1 color="#CC0000"><b>输入错误</b></h1>&#39;;
    }
    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>
Nach dem Login kopieren

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 PHP

Das 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage