PHP Tutorials, PHP lernen, PHP Forum, PHP Community and more ... MyWebsolution.de!

Sidebar

Home News Tutorials Workshops Tipps Artikel Gästebuch Sitemap

Suche

Members

Forum Login Registrierung

Statistik

Statistikbereich
Jetzt7
Heute110
Gestern471
Gesamt282789

Tutorials

Autor Flitze
Klicks 14420
Bewertungen 22
Rating 7
Stand 20.06.2010

Keywords
Captchas mit PHP erstellen, Captcha Spamschutz, Captcha Tutorial Image-Funktionen, PHP Captcha-Klasse, Captchas einbinden, Turorial intelligente Captchas, Captcha Beispiel, Captcha-Klasse, PHP, Captcha

Captcha Tutorial

Seite : 1 2 3 4 5 Bewerten

1. Die Captcha-Klasse

Zunächst erstelle ich eine Klasse für unser Captcha

PHP:
<?php
    
class Captcha {
        var 
$width;   // Breite des Captchas
        
var $height;  // Höhe des Captchas
        
var $bild;    // Die mit PHP erzeugte Grafik
        
var $bgcolor// Hintergrundfarbe

        
var $errors = array(); // Fehlerarray
        
        // Konstruktor, erstellt die "Grundgrafik"
        
function Captcha ($width$height){
            if(!
is_Int($width) OR !is_Int($height))
                die(
"Breite oder Höhe des Captchas nicht angegeben!");
            
$this->width $width;
            
$this->height $height;
            
$this->bild imagecreate($width,$height);
        }
        
        
// Kontrollfunktion zur Prüfung von Farbwerten
        
function checkColorValue($r,$g,$b){
            if(!
is_Int($r) OR $r<OR $r >255)
                return 
false;
            if(!
is_Int($g) OR $g<OR $g >255)
                return 
false;
            if(!
is_Int($b) OR $b<OR $b >255)
                return 
false;
            return 
true;
        }

        
// setzt die Hintergrundfarbe der Grafik
        
function setBGColor ($r$g$b){
            if(!
$this->checkColorValue($r,$g,$b)){
                
$this->errors[] = "Falscher Farbwert (Hintergrundfarbe)!";
                return 
false;
            }
            
$this->bgcolor imagecolorallocate($this->bild,(int)$r,(int)$g,(int)$b);
        }
        
        
// Gibt die Grafik auf dem Bildschirm aus
        
function createCaptcha (){
            
// Prüfung des Fehlerarrays
            
if(count($this->errors)){
                foreach(
$this->errors as $error)
                    echo 
$error."<br>\n";
                return 
false;
            }
            
// Mime-Type im Header definieren
            
header("Content-Type: image/gif");
            
// Grafik ausgeben
            
imageGIF($this->bild);
            
// Grafik aus dem Speicher löschen
            
imagedestroy($this->bild);
        }
    }
?>


Mit dieser Klasse können wir bisher ein "leeres" GIF erzeugen, dem wir eine Hintergrundfarbe zuweisen können. Für die Hintergrundfarbe rot sieht das so aus:

PHP:
<?php
    $myCaptcha 
= new Captcha(200,100);
    
$myCaptcha->setBGColor(255,0,0);
    
$myCaptcha->createCaptcha();
?>


Um ungültige Eingabe abzufangen und so PHP-Fehler zu verhindern, habe ich das Fehlerarray $errors angelegt, in das ich eventuelle Fehler speichere. Um Fehler zu erkennen, habe ich z.B. die Kontrollfunktion checkColorValue() angelegt. Diese Funktion überprüft die ihr übergebenen Farbwerte daraufhin, ob sie als Integer definiert sind und im Bereich 0-255 liegen.

Somit werden z.B. diese fehlerhaften Werte erkannt

PHP:
<?php
    $myCaptcha 
= new Captcha(200,100);
    
$myCaptcha->setBGColor(255,'a',0);
    
$myCaptcha->createCaptcha();
    
// oder
    
$myCaptcha = new Captcha(200,100);
    
$myCaptcha->setBGColor(255,300,0);
    
$myCaptcha->createCaptcha();
    
// oder 
    
$myCaptcha = new Captcha(200,100);
    
$myCaptcha->setBGColor(255,0,-5);
    
$myCaptcha->createCaptcha();
    
// oder 
    
$myCaptcha = new Captcha(200,100);
    
$myCaptcha->setBGColor(5.5,0,0);
    
$myCaptcha->createCaptcha();
?>


und es wird Falscher Farbwert (Hintergrundfarbe)! ausgegeben.

Zurück zur vorigen Seite:
Captcha Tutorial
Weiter zur nächsten Seite:
Captcha Tutorial - Logische Abfragen

»» Zurück zum Menu

Ranking

Tutorials (9)

8.7
8.7
8.4

Workshops (3)

9
8.8
7.2

Tipps (9)

8.7
7.5
7.5

Artikel (13)

10
8.5
7.2

RSS Feeds

Full Feed Tutorials Workshops Tipps Artikel

Partner & Links


Valid HTML 4.01 Transitional
Valid CSS
nach oben

Diese Seiten unterstützen MyWebsolution:
Online Experte - Fairrank Deutschland GmbH
 
© MyWebsolution.de
2006-2010