pdo statements
Captcha
was ist ein Captcha?
Ein Captcha ist eine Prüfsumme, die nicht unbedingt aus Zahlen bestehen muß!
Es wird überprüft ob die User-Eingabe die gleiche ist wie das vorgegebene Captcha (Prüfsumme)

Beispiel 1:
<?php
$a = mt_rand(1,20); // z.B.: 7
$b = mt_rand(1,20); // z.B.: 11
$aufgabe = $a + $b; // gleich 18
Ergebnis als Session
$_SESSION['result']=$a + $b;
?>
im Formular
Ergebnis von <?php echo $aufgabe;?> eintragen:
<input type="text" name="aufgabe">

Beispiel 2:
<?php
function CapString($length=5)
{
return substr(str_shuffle(str_repeat($x=
'23456789ABCDEFGHKLMNPQRSTUVWXYZ',
ceil($length/strlen($x)) )),1,$length);
}
$capz = CapString();
$aufgabe=$capz;
Ergebnis als Session
$_SESSION['result']=$capz;
?>
im Formular
Zeichenfolge <?php echo $aufgabe;?>
hier eintragen: <input type="text" name="aufgabe">

Beispiel 3:
captcha.php
<?php
Sitzung starten einfügen
Bildgröße festlegen
$width = 160;
$height = 36;
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 = "ABCDEFGHJKLMNPRSTUVWXYZ23456789";
$text = "";
for ($i = 0; $i < 5; $i++)
{
Zufälligen Buchstaben auswählen
$char = $chars[rand(0, strlen($chars) - 1)];
$text .= $char;
Schriftart festlegen
$font = "pfad/arial.ttf";
Schriftgröße festlegen
$size = 15;
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["result"] = $text;
Captcha-Bild an den Browser senden
header("Content-Type: image/png");
imagepng($image);
Ressourcen freigeben
imagedestroy($image);
?>
im Formular
Zeichenfolge <img src="captcha.php" alt="">
hier eintragen: <input type="text" name="aufgabe">
Top
Top