Heim > Backend-Entwicklung > PHP-Tutorial > Tipps zum Generieren einfacher grafischer Verifizierungscodes mithilfe der PHP- und GD-Bibliothek

Tipps zum Generieren einfacher grafischer Verifizierungscodes mithilfe der PHP- und GD-Bibliothek

WBOY
Freigeben: 2023-07-13 16:30:01
Original
805 Leute haben es durchsucht

Tipps zum Generieren einfacher grafischer Verifizierungscodes mithilfe von PHP- und GD-Bibliotheken

Mit der Entwicklung des Internets ist die Verhinderung böswilliger Angriffe und Missbrauchs zu einem wesentlichen Bestandteil der Website-Entwicklung geworden. CAPTCHA ist ein weit verbreitetes technisches Mittel zur Überprüfung der Benutzeridentität und zur Verhinderung der Registrierung und Anmeldung durch böswillige Roboter. Als beliebte serverseitige Programmiersprache kann PHP in Kombination mit der GD-Bibliothek schnell einfache grafische Verifizierungscodes generieren.

1. Einführung in die GD-Bibliothek
GD-Bibliothek ist eine Erweiterungsbibliothek von PHP. Sie bietet eine Reihe von Funktionen und Methoden zur Verarbeitung von Bildern. Über die GD-Bibliothek können Funktionen wie Bildverarbeitung, Bildskalierung und Bildzusammenführung realisiert werden. Bei der Generierung des Verifizierungscodes spielt die GD-Bibliothek eine entscheidende Rolle.

2. Generieren Sie einen einfachen grafischen Verifizierungscode
Im Folgenden zeigen wir anhand eines einfachen Beispiels, wie Sie einen grafischen Verifizierungscode über PHP und die GD-Bibliothek generieren.

  1. Erstellen Sie eine neue PHP-Datei mit dem Namen captcha.php.
  2. Zuerst müssen wir eine zufällige Bestätigungscodezeichenfolge generieren. Sie können die Funktion rand() oder mt_rand() verwenden, um eine Zufallszahl innerhalb eines angegebenen Bereichs zu generieren und diese in entsprechende Zeichen umzuwandeln. Beispielsweise können wir eine Captcha-Zeichenfolge generieren, die 4 zufällige Buchstaben und Zahlen enthält.
$code = '';
for ($i = 0; $i < 4; $i++) {
    $code .= chr(mt_rand(65, 90));  // 生成大写字母
    $code .= chr(mt_rand(48, 57));  // 生成数字
}
Nach dem Login kopieren
  1. Als nächstes müssen wir die generierte Bestätigungscodezeichenfolge auf dem Bild anzeigen. Erstellen Sie zunächst ein Bild einer bestimmten Größe und legen Sie die Hintergrundfarbe und die Textfarbe fest.
$image_width = 120;
$image_height = 40;
$image = imagecreatetruecolor($image_width, $image_height);
$background_color = imagecolorallocate($image, 255, 255, 255);  // 白色背景
$text_color = imagecolorallocate($image, 0, 0, 0);  // 黑色文本
Nach dem Login kopieren
  1. Zeichnen Sie die Captcha-Zeichenfolge auf das Bild. Text kann mit der Funktion imagettftext() zu Bildern hinzugefügt werden. Bevor Sie diese Funktion nutzen, stellen Sie bitte sicher, dass Sie eine TrueType-Schriftartdatei (.ttf) heruntergeladen haben. Beispielsweise fügen wir Text an der oberen linken Eckposition hinzu.
$font_file = 'path/to/font.ttf';
$text_x = 10;
$text_y = 30;
imagettftext($image, 16, 0, $text_x, $text_y, $text_color, $font_file, $code);
Nach dem Login kopieren
  1. Zum Schluss geben Sie das Bild aus und zerstören die Bildressource.
header('Content-Type: image/png');  // 设置图像类型为PNG
imagepng($image);  // 输出图像
imagedestroy($image);  // 销毁图像资源
Nach dem Login kopieren

Zu diesem Zeitpunkt wurde ein einfacher grafischer Bestätigungscode erfolgreich generiert.

3. Anwenden eines grafischen Bestätigungscodes
Durch die Einbettung des generierten Bestätigungscodes in die Registrierungs- oder Anmeldeseite der Website kann der Missbrauch durch böswillige Roboter wirksam verhindert werden. Wenn Benutzer das Formular ausfüllen, müssen sie auch den richtigen Bestätigungscode eingeben, um die Registrierung oder den Anmeldevorgang abzuschließen.

<form action="register.php" method="post">
    <!-- 其他表单项 -->
    <img src="captcha.php" alt="验证码">
    <input type="text" name="captcha" placeholder="请填写验证码">
    <button type="submit">注册</button>
</form>
Nach dem Login kopieren

Bei der Verarbeitung einer Registrierungs- oder Anmeldeanfrage im Backend muss überprüft werden, ob der vom Benutzer eingegebene Bestätigungscode mit dem generierten Bestätigungscode übereinstimmt.

$code = $_SESSION['captcha'];  // 从session中取出保存的验证码
$user_input = $_POST['captcha'];  // 用户填写的验证码
if ($user_input === $code) {
    // 验证码正确,继续处理注册或登录
} else {
    // 验证码错误,给出相应提示
}
Nach dem Login kopieren

4. Zusammenfassung
Über die PHP- und GD-Bibliothek können wir ganz einfach einfache grafische Verifizierungscodes generieren und diese auf die Registrierungs- und Anmeldeseiten der Website anwenden. Auf diese Weise kann wirksam verhindert werden, dass bösartige Roboter die Website missbrauchen. Wir können den Stil des Bestätigungscodes an unsere eigenen Bedürfnisse anpassen und optimieren und so die Lesbarkeit und Sicherheit des Bestätigungscodes verbessern.

Das obige ist der detaillierte Inhalt vonTipps zum Generieren einfacher grafischer Verifizierungscodes mithilfe der PHP- und GD-Bibliothek. 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