Beispiele und Ideenanalyse des PHP-Verifizierungscodes

*文
Freigeben: 2023-03-18 18:30:01
Original
1558 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die Produktionsideen und Implementierungsmethoden von PHP-Verifizierungscodes vorgestellt. Wir können die Grundprinzipien von PHP-Verifizierungscodes nicht verstehen und die Implementierungsmethoden von PHP-Verifizierungscodes wirklich beherrschen wird benötigt. Freunde können darauf verweisen. Ich hoffe, es hilft allen.

1. Produktionsideen

Da bei der Registrierung häufig Registrierungscodes verwendet werden, um eine böswillige Registrierung von Maschinen zu verhindern, veröffentliche ich hier ein Basisbild, das einen PNG-Bildverifizierungscode generiert , einfache Ideenanalyse:

Generieren Sie ein PNG-Bild
Legen Sie die Hintergrundfarbe für das Bild fest
4 Zufälliger Bestätigungscode mit Ziffern
5. Passen Sie den Drehwinkel und die Position jedes generierten Zeichens an und zeichnen Sie es auf das PNG-Bild
6. Fügen Sie Rausch- und Interferenzlinien hinzu, um zu verhindern, dass Registrierungsmaschinen das Originalbild auf böswillige Registrierung analysieren
7. Geben Sie das Bild aus
8. Geben Sie den vom Bild belegten Speicher frei

2. Implementierungsmethode

authcode.php-Datei



<?php
    session_start ();
    header ( &#39;Content-type: image/png&#39; );
    //创建图片
    $im = imagecreate($x=130,$y=45 );
    $bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
    $fontColor = imageColorAllocate ( $im, 255, 255, 255 );  //字体颜色
    $fontstyle = &#39;rock.ttf&#39;;          //字体样式,这个可以从c:\windows\Fonts\文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
    //产生随机字符
    for($i = 0; $i < 4; $i ++) {
        $randAsciiNumArray     = array (rand(48,57),rand(65,90));
        $randAsciiNum         = $randAsciiNumArray [rand ( 0, 1 )];
        $randStr             = chr ( $randAsciiNum );
        imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
        $authcode            .= $randStr; 
    }
    $_SESSION[&#39;authcode&#39;]    = $randFourStr;//用户和用户输入的验证码做比较
    //干扰线
    for ($i=0;$i<8;$i++){
        $lineColor    = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
        imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
    }
    //干扰点
    for ($i=0;$i<250;$i++){
        imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
    }
    imagepng($im);
    imagedestroy($im);        
?>
Nach dem Login kopieren


Rendering:

Verwandte Empfehlungen:

So verwenden Sie PHP zum Senden von SMS-Bestätigungscodes

Laravel's Verifizierungscode-Bibliothek

So lösen Sie das Problem, dass das Verifizierungscode-Bild nicht in ecshop angezeigt wird

Das obige ist der detaillierte Inhalt vonBeispiele und Ideenanalyse des PHP-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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!