Heim >Backend-Entwicklung >PHP-Problem >So legen Sie den Bildverifizierungscode in PHP fest

So legen Sie den Bildverifizierungscode in PHP fest

藏色散人
藏色散人Original
2021-02-25 10:11:433392Durchsuche

So legen Sie den Bildüberprüfungscode in PHP fest: Generieren Sie zunächst eine zufällige Zeichenfolge und speichern Sie sie mithilfe der Sitzung. Erstellen Sie dann ein einfaches Bild, legen Sie die Hintergrundfarbe und die Textfarbe fest und fügen Sie dann einige Interferenzlinien und Interferone hinzu mit einer zufälligen Zeichenfolge; löschen Sie schließlich den Ausgabepuffer und generieren Sie dann das Bestätigungscode-Bild.

So legen Sie den Bildverifizierungscode in PHP fest

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

PHP generiert Bildverifizierungscode (einfach)

   PHP-Neuling, hat zusätzlich eine Web-Login-Schnittstelle geschrieben Benutzername und Passwort, ich hatte das Gefühl, dass es cooler wäre, einen Bestätigungscode zu haben, also habe ich eine image.php geschrieben, um einen einfachen Bildbestätigungscode zu generieren, der auf der kurzen Einführung im Nachschlagewerk basiert. Ich war ziemlich berührt und möchte ihn gerne teilen .

1. Schritte zur Generierung des Bildbestätigungscodes:

(1) Generieren Sie eine zufällige Zeichenfolge (vorausgesetzt, es werden nur 6 Ziffern benötigt) und speichern Sie sie mithilfe der Sitzung zur Überprüfung.

<? = ($i=;$i<;$i++= rand(,= $] = $str;

(2) Erstellen Sie ein einfaches Bild (80 x 20). die Hintergrundfarbe, die Textfarbe und einige Interferenzlinien und Interferone hinzufügen;

    $img_handle = Imagecreate(80, 20);  //图片大小80X20
    $back_color = ImageColorAllocate($img_handle, 255, 255, 255); //背景颜色(白色)
    $txt_color = ImageColorAllocate($img_handle, 0,0, 0);  //文本颜色(黑色)    
    //加入干扰线
    for($i=0;$i<3;$i++)
    {
        $line = ImageColorAllocate($img_handle,rand(0,255),rand(0,255),rand(0,255));
        Imageline($img_handle, rand(0,15), rand(0,15), rand(100,150),rand(10,50), $line);
    }    //加入干扰象素
    for($i=0;$i<200;$i++) 
    {
        $randcolor = ImageColorallocate($img_handle,rand(0,255),rand(0,255),rand(0,255));
        Imagesetpixel($img_handle, rand()%100 , rand()%50 , $randcolor);
    }

  (3) Füllen Sie die Hintergrundfarbe des Bildes und füllen Sie dann das Bild mit der generierten Zufallszeichenfolge und neu generieren Das Bestätigungscodebild wird generiert und das Bild wird angezeigt.

    Imagefill($img_handle, 0, 0, $back_color);             //填充图片背景色
    ImageString($img_handle, 28, 10, 0, $str, $txt_color);//水平填充一行字符串

  2. Verweis auf den Bildbestätigungscode [Empfohlene Studie: „

PHP Video Tutorial

“]   Fügen Sie das Bestätigungscodebild in das Formular ein. src="image.php" wird verwendet, um das Bestätigungscodebild entsprechend zu generieren Zu den oben genannten Schritten hat PHP, um den Effekt zu verstärken, die Funktion zum Aktualisieren des Bestätigungscodes von js hinzugefügt, auf die Sie sich beziehen können.

    ob_clean();   // ob_clean()清空输出缓存区    
    header("Content-type: image/png"); //生成验证码图片    
    Imagepng($img_handle);//显示图片?>

  3. Überprüfung des Bestätigungscodes

  Verwenden Sie die im ersten Schritt in post.php gespeicherte Sitzung, um den vom Benutzer eingegebenen Bestätigungscode abzugleichen.

<form id="form1" name="form1" method="post" action="post.php">
    <input type="text" name="code" />
    <img  src="image.php" id = "refresh" title="刷新验证码" align="absmiddle" onclick="document.getElementById(&#39;refresh&#39;).src=&#39;image.php&#39; ">
    <font color="#ffffff">点击图片刷新</font>
    <input type="submit" value="登录"/>
</form>

4. Wirkungsanzeige:

Generiertes Bestätigungscode-Bild:

Wirkung im Anmeldefeld:

4. Diskussion verbleibender Probleme

(1) Verifizierungscode-Bild generieren und vor dem Warum anzeigen ob_clean() verwenden, um den Ausgabepuffer zu löschen? ?

Da ich mit PHP nicht sehr vertraut bin, können Sie hier nachlesen: http://www.php.net/manual/zh/function.ob-clean.php

(2) Gibt es eine Möglichkeit, die Größe festzulegen? Welche Schriftart wird im Bild ausgefüllt? ?

  Die ImageString-Funktion verwendet die integrierte Schriftart und kann nur durch die Funktion imagettftext() ersetzt werden. Sie können sich auf Folgendes beziehen: http://us3.php.net/manual/zh/function.imagettftext.php

 Willkommen zur Diskussion, bitte leicht sprühen~

Das obige ist der detaillierte Inhalt vonSo legen Sie den Bildverifizierungscode in PHP fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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