Bildüberprüfungscodes werden häufig in der Registrierung, Anmeldung, Kommentaren und anderen Szenarien der Website verwendet und sind ein wichtiges Mittel, um die Sicherheit des Formulars zu verbessern und automatische Skriptangriffe zu widerstehen. In diesem Artikel werden Sie Schritt für Schritt ein einfaches PHP -Bildüberprüfungscode -System implementieren, der sich auf die GD -Grafikbibliothek von PHP stützt, um die Bilderzeugung zu vervollständigen, und den Sitzungsmechanismus zu kombinieren, um die Überprüfung des Überprüfungscode zu vervollständigen.
Stellen Sie vor Beginn sicher, dass die GD -Bibliothek in Ihrer Serverumgebung aktiviert ist. Die GD -Bibliothek ist ein Erweiterungsmodul in PHP, das grafische Bilder verarbeitet und zum Erstellen von Bildern dynamisch erstellt wird. Sie können prüfen, ob die Erweiterung durch Ausführen von PHPinFO () aktiviert ist.
Erstellen Sie eine Datei namens Captcha.php , generieren Sie die GD -Bibliothek, um ein Bild mit Zufallsnummern dynamisch zu generieren, und speichern Sie den generierten Bestätigungscodewert für die nachfolgende Überprüfung in $ _Session .
Das Folgende ist der Code für die Bildung des Verifizierungscodebildbildes:
<?php
session_start();
// Generieren Sie zufällige vierstellige Überprüfungscodes
$code = rand(1000, 9999);
// Speichern Sie den Verifizierungscode in die Sitzung
$_SESSION['captcha_code'] = $code;
// Bildressourcen erstellen
$image = imagecreatetruecolor(120, 40);
// Setzen Sie die Hintergrundfarbe auf Weiß
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);
// Interferenzpunkte hinzufügen
for ($i = 0; $i < 100; $i++) {
$point_color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
imagesetpixel($image, rand(0, 120), rand(0, 40), $point_color);
}
// Setzen Sie die Textfarbe auf schwarz
$text_color = imagecolorallocate($image, 0, 0, 0);
// Verifizierungscode -Text zeichnen(Stellen Sie sicher, dass der Schriftart korrekt ist)
imagettftext($image, 20, 0, 30, 30, $text_color, 'path/to/font.ttf', $code);
// Ausgabe Bild zum Browser
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
Um Verifizierungscode-Bilder in die Front-End-Seite einzubetten, können Sie Captcha.php mit der folgenden Methode aufrufen:
<img src="captcha.php" alt="Bestätigungscode">
Es wird empfohlen, dem Bild Aktualisierungsfunktionen hinzuzufügen, z. B. Klicken auf das Bild, um den Verifizierungscode neu zu laden, um die Benutzererfahrung zu verbessern.
Wenn ein Benutzer ein Formular einreicht, muss der vom Benutzer eingegebene Verifizierungscode mit dem in der Sitzung gespeicherten Wert verglichen werden, um festzustellen, ob die Eingabe korrekt ist. Hier ist ein Beispiel für Verifizierungscode:
<?php
session_start();
if (isset($_POST['captcha'])) {
$user_input = $_POST['captcha'];
if ($user_input == $_SESSION['captcha_code']) {
// Überprüfung ist erfolgreich,Führen Sie den entsprechenden Vorgang durch
} else {
// Überprüfung fehlgeschlagen,Aufforderung zum Wiedereintritt
}
}
?>
Diese Logik eignet sich für alle Formularszenarien wie Benutzerregistrierung, Anmeldeüberprüfung usw., die Bestätigungsvorgänge erfordern.
Durch dieses Tutorial haben Sie die grundlegenden Methoden zur Verwendung von PHP- und GD -Bibliotheken zur Implementierung des Bildverifizierungscodes gelernt. Diese Lösung wurde entwickelt, um Bilder zu generieren, die zufällige Zeichen enthalten, und kombiniert den Sitzungsmechanismus, um die serverseitige Überprüfung zu vervollständigen, die für die meisten kleinen und mittelgroßen Projekte geeignet sind.
Weitere Erweiterungen können auf dieser Grundlage vorgenommen werden, beispielsweise:
Hinzufügen von Bestätigungscode -Zeichenstyp (Nummer + Buchstabe)
Fügen Sie Grafikinterferenzlinien hinzu
Dynamisch Schriftgröße und Winkel erzeugen
Fügen Sie die Ablaufzeit des Verifizierungscodes usw. hinzu.
Eine angemessene Konstruktion von Überprüfungscodes hilft nicht nur, böswillige Angriffe zu verhindern, sondern verbessert auch die allgemeine Sicherheit des Systems.