Captcha Abfrage für Formulare
Samstag, 24. März 2007 | Autor: Pr0g
Der erste Test
Wenn nun die Datei “formular.php” im Browser geöffnet wird sollte ein Captcha Bild mit vier Zeichen erscheinen. Bei jedem Aktualisieren wird ein neues Bild angezeigt.
Nachfolgend nochmal der komplette Code in einem Block:
<?php
// Bild Id generieren
$bg_id = rand(1, 3);
// Schriftfarben setzen
switch ($bg_id) {
case 1:
case 2: $colors = array('100', '010', '110', '011', '101'); break;
case 3: $colors = array('100', '001', '110', '011'); break;
}
// Zeichensatz setzen
$chars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'T', 'U',
'V', 'W', 'X', 'Y', 'Z', '2', '3', '4', '5', '6', '7', '9');
// Bild erzeugen
$img = imagecreatefrompng('bg/bg' . $bg_id . '.png');
$code = '';
$xpos = rand(3, 8);
for ($i = 1; $i <= 4; $i++) {
// Code erzeugen
$letter = $chars[array_rand($chars)];
$code .= $letter;
// Schriftfarben erzeugen
$c = $colors[array_rand($colors)];
$r = ($c[0] == 0 ? 0 : 255);
$g = ($c[1] == 0 ? 0 : 255);
$b = ($c[2] == 0 ? 0 : 255);
$col = imagecolorallocate($img, $r, $g, $b);
// Code zeichnen
imagettftext($img, 14, rand(-5, 5), $xpos, rand(20, 25), $col, 'ttf/arial.ttf', $letter);
$xpos += 20;
}
// Header anpassen
header('content-type: image/png');
// Bild ausgeben
imagepng($img);
// Bild freigeben
imagedestroy($img);
?>




Sonntag, 2. März 2008
Der Captcha-Artikel sieht *sehr* gut aus (auch wenn ich noch keine Zeit hatte, ihn im einzelnen durchzulesen). Vielen Dank!
Sonntag, 2. März 2008
Es scheint allerdings gute Argumente zu geben, auf Captchas zu verzichten, vgl.
http://1ngo.de/web/captcha-spam.html
Sonntag, 2. März 2008
Klar sind Captchas nicht das perfekte Wundermittel gegen Spam, wurde von mir ja auch nie behauptet. Ich sehe sie lediglich als eine Lösung von vielen und daher der Artikel
Dienstag, 24. Juni 2008
Das Tut ist wirklich gut,bei mir gibt es allerdings einen Schönheitsfehler,es findet kein Abbruch statt wenn ich überhaupt nichts eintrage.??habe es in mein Gästebuch eingefügt. (-: