Nekoji
Ein tolles Tutorial, dass sicher viele gebrauchen können. :)
am 15.06.2008 um 13:14 Uhr
|





<?php
session_start();
unset($_SESSION['captcha_spam']);
function randomString($len) {
srand(date("s"));
//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);
?>
wird aufgefallen sein, dass der String $possible weder ein großes i (I); noch ein kleines L (l), noch eine Eins (1) aufgeführt ist - aus dem schlichten Grund, dass diese drei Zeichen sich so ähnlich sehen, dass es für den Besucher schwierig wird, das richtige Zeichen zu erkennen und einzutippen.
<tr>
<td><img src="captcha/captcha.php" border="0" title="Sicherheitscode"></td>
<td><input type="text" name="sicherheitscode" size="5"></td>
</tr>
<img src="/captcha/captcha.php" border="0" title="Sicherheitscode" style="float:left; margin-right:5px;" /><input type="text" name="sicherheitscode" id="sicherheitscode" size="5">
<?php
session_start ();
if(isset( $_SESSION [ 'captcha_spam' ]) AND $_POST [ "sicherheitscode" ] == $_SESSION [ 'captcha_spam' ]){
unset( $_SESSION [ 'captcha_spam' ]);
//
//
//Hier kommt das bisherige Script hin.
//
//
}
?>
}else{
die ( "Der Sicherheitscode ist falsch!" );
}
Allerdings hab ich mir dann den Code von den Tabellen angeschaut und musste feststellen, dass das auch gar nicht gehen kann
<img src="/captcha/captcha.php" border="0" title="Sicherheitscode"
style="float:left; margin-right:5px;" /><input type="text"
name="sicherheitscode" id="sicherheitscode" size="5">
<img src="/captcha/captcha.php"
<img src="/captcha/captcha.png"
<tr> <td><img src="captcha/captcha.png" border="0"
title="Sicherheitscode"></td> <td><input type="text"
name="sicherheitscode" size="5"></td> </tr>
<img src="/captcha/captcha.php" border="0" title="Sicherheitscode"
style="float:left; margin-right:5px;" /><input type="text"
name="sicherheitscode" id="sicherheitscode" size="5">
<tr> <td><img src="HIER DEN ORDNER ANGEBEN/captcha/captcha.png"
border="0" title="Sicherheitscode"></td> <td><input type="text"
name="sicherheitscode" size="5"></td> </tr>
<img src="HIER DEN ORDNER ANGEBEN/captcha/captcha.png" border="0"
title="Sicherheitscode" style="float:left; margin-right:5px;" /><input
type="text" name="sicherheitscode" id="sicherheitscode" size="5">
Als ich eben noch einmal meinen ganzen Kommentar gelesen habe, ist mir aufgefallen, dass ich bei der Verbesserung der "ohne" Tabelle den Pfad gar nicht geändert habe...
<img src="/captcha/captcha.php" border="0" title="Sicherheitscode"
style="float:left; margin-right:5px;" /><input type="text"
name="sicherheitscode" id="sicherheitscode" size="5">
<img src="/captcha/captcha.png " border="0"
title="Sicherheitscode" style="float:left; margin-right:5px;" /><input
type="text" name="sicherheitscode" id="sicherheitscode" size="5">
Bis auf die paar kleinen Rechtschreibfehler... *hüstel* ist eben einfach noch zu früh für mich
Sayuri
geiles tut ^^ werd ich für meine vormulare mal benutzen ^^ DANKEEEEEEEE