Captchas (Completely Automated Public Turing test to tell Computers and Humans Apart) sind Tests, die verwendet werden, um sicherzustellen, dass eine Webseite von einem menschlichen Nutzer und nicht von einem automatisierten Programm besucht wird. Sie werden oft verwendet, um die Registrierung von Benutzerkonten oder das Absenden von Formularen zu schützen.
Um ein Captcha mit PHP zu erstellen, gibt es einige Schritte, die Sie befolgen können:
- Erstellen Sie eine PHP-Datei, die das Captcha generiert. In dieser Datei sollte eine Funktion enthalten sein, die ein Captcha-Bild erstellt und es an den Browser sendet.
- Verwenden Sie die PHP-GD-Bibliothek, um das Captcha-Bild zu erstellen. Diese Bibliothek bietet Funktionen zum Erstellen und Bearbeiten von Bildern. Verwenden Sie zum Beispiel die ImageCreate-Funktion, um ein neues Bild zu erstellen, und die ImageTTFText-Funktion, um den Text des Captchas auf das Bild zu zeichnen.
- Speichern Sie das Captcha-Text in der Sitzung. Verwenden Sie die PHP-Session-Funktionen, um den Captcha-Text in einer Sitzungsvariablen zu speichern. Dies ermöglicht es Ihnen, den Text später zu überprüfen, wenn das Formular abgesendet wird.
- Erstellen Sie ein Formular, das das Captcha anzeigt. Verwenden Sie das img-Tag, um das Captcha-Bild anzuzeigen, und fügen Sie ein Textfeld hinzu, in das der Benutzer den Captcha-Text eingeben kann.
- Überprüfen Sie den Captcha-Text, wenn das Formular abgesendet wird. Verwenden Sie die Session-Funktionen erneut, um den Captcha-Text aus der Sitzung abzurufen und ihn mit dem Text zu vergleichen, der vom Benutzer eingegeben wurde. Wenn die beiden übereinstimmen, ist der Benutzer möglicherweise ein Mensch. Wenn sie nicht übereinstimmen, könnte es sich um ein automatisiertes Programm handeln, und Sie können entsprechend reagieren.
Hier ist ein Beispielcode in PHP, der zeigt, wie man ein Captcha erstellen und überprüfen kann:
<?php
// Starten der Sitzung
session_start();
// Erstellen des Captcha-Bildes
// Bildgröße festlegen
$width = 150;
$height = 50;
// Neues Bild erstellen und Transparenz aktivieren
$image = imagecreatetruecolor($width, $height);
imagealphablending($image, true);
imagesavealpha($image, true);
// Hintergrundfarbe festlegen
$bg_color = imagecolorallocatealpha($image, 255, 255, 255, 127);
// Hintergrund mit der Hintergrundfarbe füllen
imagefill($image, 0, 0, $bg_color);
// Captcha-Text erstellen
$chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
$text = "";
for ($i = 0; $i < 5; $i++) {
// Zufälligen Buchstaben auswählen
$char = $chars[rand(0, strlen($chars) - 1)];
$text .= $char;
// Schriftart festlegen
$font = "arial.ttf";
// Schriftgröße festlegen
$size = 30;
// Schriftfarbe festlegen
$color = imagecolorallocate($image, 0, 0, 0);
// Text auf das Bild schreiben
imagettftext($image, $size, 0, 10 + $i * 30, 35, $color, $font, $char);
}
// Captcha-Text in der Sitzung speichern
$_SESSION["captcha_text"] = $text;
// Captcha-Bild an den Browser senden
header("Content-Type: image/png");
imagepng($image);
// Ressourcen freigeben
imagedestroy($image);
?>
Dann benötigst Du noch ein Formular in HTML:
<form method="POST" action="verify.php">
<img src="captcha.php" alt="Captcha-Bild">
<br>
<label for="captcha">Captcha-Text:</label>
<input type="text" name="captcha" id="captcha">
<br>
<input type="submit" value="Absenden">
</form>
Und schließlich die Captcha-Überprüfungs-Datei (verify.php)
<?php
// Starten der Sitzung
session_start();
// Captcha-Text aus der Sitzung abrufen
$captcha_text = $_SESSION["captcha_text"];
// Captcha-Text aus dem Formular abrufen
$submitted_text = $_POST["captcha"];
// Captcha-Text vergleichen
if (strtolower($submitted_text) == strtolower($captcha_text)) {
// Captcha wurde erfolgreich überprüft
echo "Captcha erfolgreich überprüft.";
} else {
// Captcha nicht überprüft
echo "Captcha nicht überprüft.";
}
?>
Hinweis: Dies ist nur ein Beispielcode und sollte möglicherweise angepasst werden, um Ihren Anforderungen zu entsprechen. Sie können beispielsweise andere Schriftarten, Schriftgrößen oder Hintergrundfarben verwenden, oder den Code erweitern, um das Captcha zu verschleiern oder zu verzerren. Es empfiehlt sich auch, das Captcha zu speichern und zu überprüfen, nachdem es einmal erfolgreich überprüft wurde, um sicherzustellen, dass es nicht mehrmals von demselben Benutzer verwendet wird.
Abonniere das kostenlose KI-Update
Bleib auf dem Laufenden in Sachen Künstliche Intelligenz!
Melde Dich jetzt mit Deiner E-Mail-Adresse an und ich versorge Dich kostenlos mit News-Updates, Tools, Tipps und Empfehlungen aus den Bereichen Künstliche Intelligenz für dein Online Business, WordPress, SEO, Online-Marketing und vieles mehr.
Keine Sorge, ich mag Spam genauso wenig wie Du und gebe Deine Daten niemals weiter! Du bekommst höchstens einmal pro Woche eine E-Mail von mir. Versprochen.