Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie dynamischen Bildverifizierungscode mithilfe der PHP- und GD-Bibliothek

So erstellen Sie dynamischen Bildverifizierungscode mithilfe der PHP- und GD-Bibliothek

WBOY
WBOYOriginal
2023-07-12 08:40:45918Durchsuche

So erstellen Sie dynamischen Bildverifizierungscode mit PHP und der GD-Bibliothek

Um zu verhindern, dass Bots und böswillige Angreifer Vorgänge automatisieren, werden in Webanwendungen häufig Verifizierungscodes verwendet, bei denen Benutzer einen Verifizierungscode eingeben müssen, um ihre Identität zu bestätigen. Mithilfe der PHP- und GD-Bibliothek können wir problemlos dynamische Bildverifizierungscodes erstellen.

Die GD-Bibliothek ist eine Erweiterungsbibliothek für PHP, die einige Funktionen zur Bildverarbeitung bereitstellt. In diesem Artikel verwenden wir die Funktionen der GD-Bibliothek, um ein Bild mit zufälligen Zeichen zu generieren und es dem Benutzer als Bestätigungscode anzuzeigen.

Schritt 1: Erstellen Sie eine einfache PHP-Webseite

Zuerst müssen wir eine einfache PHP-Webseite erstellen, um unseren dynamischen Bildverifizierungscode darzustellen. Erstellen Sie eine Datei namens index.php und kopieren Sie den folgenden Code in die Datei:

<!DOCTYPE html>
<html>
<head>
    <title>动态图片验证码</title>
</head>
<body>
    <h1>动态图片验证码</h1>
    <img src="captcha.php" alt="验证码">
    <br>
    <a href="">换一个验证码</a>
</body>
</html>

Auf dieser einfachen HTML-Seite haben wir einen Titel und ein Bildelement erstellt, das den Bestätigungscode anzeigt. Wir setzen captcha.php für das src-Attribut des Bildes, wir werden das Bild später in dieser Datei generieren und rendern.

Schritt 2: Datei captcha.php erstellen

Jetzt müssen wir eine Datei namens captcha.php erstellen und den folgenden Code in die Datei kopieren:

<?php
// 启动会话
session_start();

// 创建图像宽度和高度
$width = 200;
$height = 50;

// 创建一个空的图像
$image = imagecreatetruecolor($width, $height);

// 设置背景颜色
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);

// 生成随机的验证码
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$length = mt_rand(4, 6);
$code = '';
for ($i = 0; $i < $length; $i++) {
    $code .= $characters[mt_rand(0, strlen($characters) - 1)];
}

// 将验证码存储在会话中
$_SESSION['captcha_code'] = $code;

// 设置文本颜色
$text_color = imagecolorallocate($image, 0, 0, 0);

// 在图像中绘制验证码
$font = __DIR__ . '/arial.ttf';
imagettftext($image, 30, 0, 10, 40, $text_color, $font, $code);

// 发送图像头信息
header('Content-Type: image/png');

// 将图像呈现给用户
imagepng($image);
imagedestroy($image);
?>

In dieser PHP-Datei starten wir zunächst die Sitzung, damit der Bestätigungscode gespeichert und abgerufen werden können. Anschließend haben wir ein leeres Bild mit einer angegebenen Breite und Höhe erstellt und die Hintergrundfarbe auf Weiß festgelegt. Als nächstes generieren wir einen Bestätigungscode mit zufälligen Zeichen und speichern ihn in der Sitzung.

Dann stellen wir die Textfarbe auf Schwarz und zeichnen den Text des Captchas in der gewählten Schriftart auf das Bild. Schließlich senden wir die Bildkopfinformationen und präsentieren das Bild dem Benutzer.

Schritt 3: Testen und verwenden Sie den Bestätigungscode

Jetzt können wir die Datei index.php im Browser öffnen und den generierten Bestätigungscode anzeigen. Bei jeder Aktualisierung der Seite wird ein anderer Bestätigungscode generiert.

Im Formular können wir die Identität des Benutzers überprüfen, indem wir prüfen, ob der vom Benutzer eingegebene Bestätigungscode mit dem in der Sitzung gespeicherten Bestätigungscode übereinstimmt.

Wir können den folgenden Code verwenden, um die Richtigkeit des Bestätigungscodes zu überprüfen:

session_start();

if (isset($_POST['submit'])) {
    if ($_POST['captcha'] == $_SESSION['captcha_code']) {
        // 验证码正确,执行所需操作
    } else {
        echo '验证码错误!';
    }
}

Hier gehen wir davon aus, dass der Inhalt dieses Artikels den Formularteil nicht enthält und nur zeigt, wie die Richtigkeit des Bestätigungscodes überprüft wird.

Durch die Verwendung von PHP und der GD-Bibliothek können wir ganz einfach dynamische Bild-Captchas erstellen, um unsere Webanwendungen zu schützen. Diese Verifizierungscodes spielen eine wichtige Rolle bei der Identifizierung echter Benutzer und der Verhinderung automatisierter Angriffe.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie dynamischen Bildverifizierungscode mithilfe der PHP- und GD-Bibliothek. 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