Captcha PHP Script

     
 

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.

« Vorwort Captcha Hintergrundbild »