|
Für das Captcha Bild erstellt man am Besten einen neuen Ordner mit dem Namen captcha. In diesen Ordner kommen folgende Dateien:
- captcha.php
- XFILES.TTF
- captcha.PNG
Der Ordner wird dann auf den Webspace geladen, am besten mit dem Namen captcha ins Root Verzeichnis des Webservers.
captcha.php
<?php
session_start();
unset($_SESSION['captcha_spam']);
function randomString($len) {
function make_seed(){
list($usec , $sec) = explode (' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
//Der String $possible enthält alle Zeichen, die verwendet werden sollen
$possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
$str="";
while(strlen($str)<$len) {
$str.=substr($possible,(rand()%(strlen($possible))),1);
}
return($str);
}
$text = randomString(5); //Die Zahl bestimmt die Anzahl stellen
$_SESSION['captcha_spam'] = $text;
header('Content-type: image/png');
$img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
$color = ImageColorAllocate($img, 0, 0, 0); //Farbe
$ttf = $_SERVER['DOCUMENT_ROOT']."/captcha/XFILES.TTF"; //Schriftart
$ttfsize = 25; //Schriftgrösse
$angle = rand(0,5);
$t_x = rand(5,30);
$t_y = 35;
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
?>
Diese Datei dient der Captcha Erstellung. Downloaden
$possible
Die Variable $possible enthält alle Zeichen, die verwendet werden sollen. Hier ein paar Varianten:
//Nur Zahlen
$possible = "0123456789";
//Nur Kleinbuchstaben
$possible = "abcdefghijklmnopqrstuvwxyz";
//Nur Grossbuchstaben
$possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//Zahlen, Gross- und Kleinbuchstaben
//wobei die Problematik bei
//0 und o, i und L usw. umgangen worden ist
$possible = "ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
XFILES.TTF
Es muss für die Captcha-Erstellung ein Font auf den Webspace geladen werden, hierbei empfehle ich, die x-files Schrift (Downloaden) zu nehmen. Es kann jedoch auch eine andere, lesbare Schrift, verwendet werden.
| |