Heim  >  Artikel  >  Backend-Entwicklung  >  So generieren Sie mit PHP responsive Verifizierungscode-Bilder

So generieren Sie mit PHP responsive Verifizierungscode-Bilder

WBOY
WBOYOriginal
2023-09-13 10:48:11699Durchsuche

So generieren Sie mit PHP responsive Verifizierungscode-Bilder

So generieren Sie mit PHP responsive Bestätigungscodebilder

Mit der rasanten Entwicklung des Internets schenken die Menschen der Informationssicherheit immer mehr Aufmerksamkeit. Um zu verhindern, dass böswillige Angreifer mithilfe automatisierter Skripts böswillige Vorgänge ausführen, verwenden Websites häufig Verifizierungscodes als Mittel zur Überprüfung der Authentizität von Benutzern. Bei einem CAPTCHA-Bild handelt es sich um eine gängige Form von Verifizierungscode, der zufällige Bilder und numerische Zeichen generiert und Benutzer dazu auffordert, anhand der Zeichen auf dem Bild etwas einzugeben, um ihre Identität zu bestätigen.

In diesem Artikel wird erläutert, wie Sie mithilfe von PHP responsive Verifizierungscodebilder generieren, und es werden spezifische Codebeispiele bereitgestellt.

  1. Bestimmen Sie die Größe und Schriftart des Bestätigungscode-Bildes

Um das Bestätigungscode-Bild zu generieren, müssen Sie zunächst die Größe und Schriftart des Bildes bestimmen. Im Allgemeinen sollte die Größe des Verifizierungscodebilds moderat und klar genug sein, aber nicht zu viel Platz auf der Seite beanspruchen. Bei der Auswahl einer Schriftart sollten Sie eine Schriftart wählen, die klar und leicht erkennbar ist.

  1. Zufällige Zeichen generieren

Verwenden Sie die Zufallszahlenfunktion von PHP, um zufällige Zeichen zu generieren und die generierten Zeichen in einer Variablen zu speichern.

$characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
$randomString = '';
$length = 6;

for ($i = 0; $i < $length; $i++) {
    $randomString .= $characters[rand(0, strlen($characters) - 1)];
}

Im obigen Code wird ein Zeichensatz verwendet, der Buchstaben und Zahlen enthält. Generieren Sie zufällig 6 Zeichen durch eine Schleife und verketten Sie sie zu einer Zeichenfolge.

  1. Erstellen Sie ein Bild für den Bestätigungscode.

Erstellen Sie ein leeres Bild für den Bestätigungscode und legen Sie die Hintergrund- und Rahmenfarben fest.

$image = imagecreatetruecolor(120, 40);
$backgroundColor = imagecolorallocate($image, 255, 255, 255);
$borderColor = imagecolorallocate($image, 0, 0, 0);

imagefilledrectangle($image, 0, 0, 120, 40, $backgroundColor);
imagerectangle($image, 0, 0, 120, 40, $borderColor);

Verwenden Sie im obigen Code die Funktion imagecreatetruecolor(), um ein leeres Bild mit der Größe 120x40 Pixel zu erstellen, und verwenden Sie die Funktion imagecolorallocate(), um den Hintergrund festzulegen Randfarbe des Bildes. Verwenden Sie dann imagefilledrectangle() und imagerectangle(), um den Hintergrund bzw. den Rand zu füllen. imagecreatetruecolor() 函数创建一个120x40像素大小的空白图片,并用 imagecolorallocate() 函数设置图片的背景和边框颜色。接着使用 imagefilledrectangle()imagerectangle() 分别填充背景和边框。

  1. 添加干扰线和随机的字符

为了增加验证码的难度,我们可以在验证码图片中添加一些干扰线,以及随机的字符。

for ($i = 0; $i < 5; $i++) {
    $lineColor = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
    imageline($image, rand(0, 120), rand(0, 40), rand(0, 120), rand(0, 40), $lineColor);
}

$fontColor = imagecolorallocate($image, 0, 0, 0);
imagettftext($image, 20, 0, 10, 30, $fontColor, 'path/to/font.ttf', $randomString);

上述代码中,通过循环多次,在验证码图片上生成随机的干扰线。随后,使用 imagettftext() 函数将随机字符绘制在验证码图片上。

  1. 输出图片并销毁资源

生成验证码图片后,需要将其输出给用户,并在使用后销毁相关资源。

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);

上述代码中,通过设置 header('Content-type: image/png') 将输出的内容类型设置为图片,并使用 imagepng() 函数将验证码图片输出至客户端。最后,使用 imagedestroy()

    Interferenzlinien und zufällige Zeichen hinzufügen

    Um die Schwierigkeit des Verifizierungscodes zu erhöhen, können wir dem Verifizierungscodebild einige Interferenzlinien und zufällige Zeichen hinzufügen.

    rrreee🎜Im obigen Code werden durch mehrmaliges Schleifen zufällige Interferenzlinien auf dem Verifizierungscodebild generiert. Verwenden Sie dann die Funktion imagettftext(), um zufällige Zeichen auf dem Captcha-Bild zu zeichnen. 🎜
      🎜Geben Sie das Bild aus und zerstören Sie die Ressource🎜🎜🎜Nachdem Sie das Bestätigungscode-Bild generiert haben, müssen Sie es an den Benutzer ausgeben und die zugehörigen Ressourcen nach der Verwendung zerstören. 🎜rrreee🎜Stellen Sie im obigen Code den Ausgabeinhaltstyp auf Bild ein, indem Sie header('Content-type: image/png') festlegen und die Funktion imagepng() verwenden Geben Sie das Bild des Bestätigungscodes an den Client aus. Verwenden Sie abschließend die Funktion imagedestroy(), um die Bildressource zu zerstören. 🎜🎜Zusammenfassend lässt sich sagen, dass wir mit PHP problemlos responsive Verifizierungscodebilder generieren können. Indem wir die Größe und Schriftart des Verifizierungscodebildes bestimmen, zufällige Zeichen generieren, das Verifizierungscodebild erstellen, Interferenzlinien und zufällige Zeichen hinzufügen, das Bild ausgeben und die Ressource zerstören, können wir eine einfache, aber effektive Verifizierungscodefunktion implementieren. 🎜🎜Ich hoffe, der obige Inhalt ist hilfreich für Sie! Wenn Sie Fragen haben, können Sie diese gerne stellen! 🎜

Das obige ist der detaillierte Inhalt vonSo generieren Sie mit PHP responsive Verifizierungscode-Bilder. 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