Captcha
Hallo ihr lieben...
ich habe ein kleines Scriptchen geschrieben. Das fur die Sicherheit ihrer homepage gegen Spam sorgen soll - Captcha.
Mal eine kurze beschreibung:
1) zufallgenerierter Hintergrund
2) zufallgenerierte buchstaben
2) 1) verschiedene abstaende
2) 2) verschiedene positionen
3) gestrichelte Linien auf dem hintergrund, farbe - zufallgeneriert
PHP-Code:
<?
session_start();
//laenge des codes
$lange = 7;
$breite = 150;
$hoehe = 60;
// hier wird am ende der geheimcode gespeichert
$wort = "";
//zufaellige buchstaben generieren
for($i=0;$i<$lange;$i++)
{
$zufall = rand(97,122);
$wort .= chr($zufall);
}
//bild erzeugen
header ('Content-type: image/png');
$bild = imagecreate($breite, $hoehe) or die("Fehler, kann kein Bild erzeugen!");
$hintergrund = imagecolorallocate($bild,rand(200,255),rand(200,255),rand(200,255));
$lines = 10;
for($a=0;$a<$lines;$a++)
{
$x_start = $a*(floor($hoehe/$lines));
$y_start = 1;
$x_ende = $x_start;
$y_ende = $breite;
$farbe = imagecolorallocate($bild,255,255,255);
//hintergrundlinien erzeugen
imagedashedline($bild,$y_start,$x_start,$y_ende,$x_ende,$farbe);
}
for($i=0;$i<$lange;$i++)
{
$grose = rand(4,12);
$y = rand(20,40);
$x = 10+$i*15;
$text_farbe = imagecolorallocate ($bild, rand(50,150),rand(100,199),rand(100,199)) or die("bla");
//geheimtext ausgeben
imagestring($bild, $grose,$x , $y,$wort[$i],$text_farbe);
}
imagepng($bild);
imagedestroy($bild);
//geheimtext in session speichern
$_SESSION['geheim'] = $wort;
?>
in eingene Seite einbauen:
1)Script als captcha.php speichern und mit <img> ausgeben
PHP-Code:
<img src=captcha.php>
//formular wo der geheimtext eingegeben werden soll
PHP-Code:
if($_POST['captcha_feld'] == $_SESSION['geheim'])
{
echo "Captcha richtig";
//dein code
}else{
die(Catcha code falsch, zuruck.);
}
Kommentar