Home

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(13);

// 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(38);
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] == 255);
  
$g = ($c[1] == 255);
  
$b = ($c[2] == 255);
  
$col imagecolorallocate($img$r$g$b);

  
// Code zeichnen
  
imagettftext($img14rand(-55), $xposrand(2025), $col'ttf/arial.ttf'$letter);
  
$xpos += 20;
}

// Header anpassen
header('content-type: image/png');

// Bild ausgeben
imagepng($img);

// Bild freigeben
imagedestroy($img);

?>

Seiten: 1 2 3 4 5 6 7 8 9 10 11

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Artikel

Diesen Beitrag kommentieren.

4 Kommentare

  1. 1
    Osterhase 
    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!

  2. 2
    Osterhase 
    Sonntag, 2. März 2008

    Es scheint allerdings gute Argumente zu geben, auf Captchas zu verzichten, vgl.
    http://1ngo.de/web/captcha-spam.html

  3. 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 ;)

  4. 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. (-:

Kommentar abgeben