Captcha ist die Abkürzung für den vollautomatischen Turing-Test, der Computer und Menschen unterscheidet. Es handelt sich um ein öffentliches vollautomatisches Programm, das den Benutzer als Computer und Mensch unterscheidet.
Hauptanwendungsszenarien des Verifizierungscodes: Vor dem Anmelden und Registrieren, vor dem Posten und Beantworten von Informationen und wenn eine vermutete maschinelle Anfrage gestellt wird, wird eine Mensch-Maschine-Verifizierung durchgeführt .
Implementierungsschritte:
(1) Basiskarte generieren;
Verlassen Sie sich auf die PHP-Bildverarbeitungsbibliothek GD
(2) Generieren Sie Verifizierungsinhalte; (Empfohlenes Lernen: PHP-Programmierung vom Einstieg bis zur Kompetenz)
Generieren Sie Zufallszahlen und verwenden Sie die PHP-Funktion rand() ;
(3) Bestätigungscodebild generieren;
(4) Bestätigungsinhalt überprüfen
Erfordert PHP, um SESSION zu betreiben Grundlagen, Speichern Sie den Verifizierungsinhalt auf der Serverseite; Front-End-Ajax-Grundlagen
Code:
Erstellen Sie eine neue captcha.php-Datei und schreiben Sie Folgendes Code. Implementieren Sie das Bild des Bestätigungscodes:
<?php //必须至于顶部,多服务器端记录验证码信息,便于用户输入后做校验 session_start(); //默认返回的是黑色的照片 $image = imagecreatetruecolor(100, 30); //将背景设置为白色的 $bgcolor = imagecolorallocate($image, 255, 255, 255); //将白色铺满地图 imagefill($image, 0, 0, $bgcolor); //空字符串,每循环一次,追加到字符串后面 $captch_code=''; //验证码为随机四个数字 for ($i=0; $i < 4; $i++) { $fontsize=6; $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120)); //产生随机数字0-9 $fontcontent = rand(0,9); $captch_code.= $fontcontent; //数字的位置,0,0是左上角。不能重合显示不完全 $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,29), $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,29),rand(1,99), rand(1,29) ,$linecolor); } header('content-type:image/png'); imagepng($image); //销毁 imagedestroy($image);
Der Effekt ist wie folgt: Einmal aktualisieren, der Inhalt kann sich einmal ändern
Erstellen Sie eine neue form.php-Datei und Schreiben Sie den folgenden Code. Implementierungsüberprüfung:
<?php if (isset($_REQUEST['authcode'])) { session_start(); if (strtolower($_REQUEST['authcode'])==$_SESSION['authcode']) { echo'<font color ="#0000CC"> 输出正确</font>'; # code... }else{ echo $_REQUEST['authcode']; echo $_SESSION['authcode']; echo'<font color ="#CC0000"> 输出错误</font>'; } exit(); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>确认验证码</title> </head> <body> <form method="" ="post" action="./form.php"> <p>验证码图片: <img id="captcha_img" border="1" src="./captcha.php?r=<?php echo rand(); ? alt="So implementieren Sie den PHP-Bestätigungscode" >" alt="" width="100" style="max-width:90%"> <a href="javascript:void(0)" οnclick="document.getElementById('captcha_img').src='./captcha.php?r='+Math.random() ">换一个?</a> </p> <p>请输入图片中的内容: <input type="text" name="authcode" value="" /> </p> <p> <input type="submit" value="提交" style="padding: 6px 20px;"> </p> </form> </body> </html>
Die Implementierungsergebnisse sind wie folgt. Klicken Sie, um einen zu ändern, und ein Bestätigungscode wird geändert.
Wenn der Inhalt korrekt ist, wird angezeigt, dass die Eingabe korrekt ist. Wenn er falsch ist, wird angezeigt, dass die Eingabe falsch ist. Ändern Sie den Stil selbst.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie den PHP-Bestätigungscode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!