
Antispamová ochrana formuláře
Zdravím lidičky, poradil by mi, prosím, někdo jak správně naprogramovat antispam formuláře?
na stránce:
http://klasdesign.cz/index.php/clanky/64-antispamo va-ochrana-formulare
jsem našel antispamovou ochranu pro formuláře s tímto zdrojákem:
<?
ob_start();
$font = 'fonts/arial.ttf';
$charset = '0123456789';
$code_length = 4;
$height = 20;
$width = 60;
$code = '';
for($i=0; $i < $code_length; $i++) {
$code = $code . substr($charset, mt_rand(0, strlen($charset) - 1), 1);
}
$font_size = $height * 0.7;
$image = @imagecreate($width, $height);
$background_color = @imagecolorallocate($image, 255, 255, 255);
$noise_color = @imagecolorallocate($image, 114, 114, 114);
for($i=0; $i < ($width * $height) / 4; $i++) {
@imageellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1,
$noise_color);
}
$text_color = @imagecolorallocate($image, 20, 40, 100);
@imagettftext($image, $font_size, 0, 7,17,
$text_color, $font , $code)
or die('Cannot render TTF text.');
header('Content-Type: image/png');
@imagepng($image) or die('imagepng error!');
@imagedestroy($image);
$_SESSION['AntiSpamImage'] = $code;
exit();
?>
Který je v samostatném souboru "antispam.php" a do zdrojáku formuláře
"form.php" jsem vložil tento jejich kód:
<img src="/antispam.php" alt="ochrana" />
<input type="text" name="ochrana" value="" />
a
if($_SESSION['AntiSpamImage']==$_POST['ochrana']){
echo 'Vyplneno v poradku'; }
po odeslání formuláře mým tlačítkem input type=submit se formulář odešle ale
neprovede kontrolu číselného vygenrovaného kódu.
Prosím o radu jak odeslat formulář aby kontrola číselného kódu byla provedena.
Děkuju moc každému za radu