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

Sidebar

Home News Tutorials Workshops Tipps Artikel Gästebuch Sitemap Unicode Shopping

Suche

Members

Forum Login Registrierung

Statistik

Statistikbereich
Jetzt1
Heute30
Gestern245
Gesamt1668683

Captcha Tutorial - Captcha-Klasse

Autor Flitze
Klicks 52245
Rating für Captcha Tutorial
  6.4 von 10
Bewertungen41
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

Amazon: PHP 5.3 und MySQL 5.1
Breadcrumb:
Tutorials » Captcha Tutorial » Captcha Tutorial - Captcha-Klasse
Seite : 1 2 3 4 5 Bewerten
Article Wizard - deutscher Article Spinner

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

Suchmaschinenoptimierung

Suchmaschinenoptimierung (SEO - Search Engine Optimization)

Ranking

Tutorials (13)

8.6
8.4
8.1

Workshops (3)

8.8
8.7
7.6

Tipps (13)

7.2
6.7
6.5

Artikel (30)

8.4
7.2
6.6

RSS Feeds

Full Feed Tutorials Workshops Tipps Artikel

Twitter

Follow me on Twitter

Partner & Links


Valid HTML 4.01 Transitional
Valid CSS
nach oben

Diese Seiten unterstützen MyWebsolution:
 
© MyWebsolution.de
2006-2017