Autor | Zpráva | ||
---|---|---|---|
deliQus Profil |
#1 · Zasláno: 12. 12. 2009, 22:42:42
Zdravím, používám tento skript na vykreslení obrázku s kódem
<? 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(); ?> mám ho uloženy jako antispam.php a v jinem souboru mam formular a tam vykresluji obrazek pomoci : <img src="antispam.php" alt="ochrana" /> Ale nemůžu potom ověřovat správnost kódu, když to není v tom stejném souboru, a když ten skript dám do stejného souboru jako formulář, tak nejde nic. Nevíte jak mám kontrolovat správnost toho kódu, když je uložený v jiném souboru ? |
||
Alphard Profil |
#2 · Zasláno: 12. 12. 2009, 23:37:19
Session by mělo fungovat, jen tam chybí session_start(). Další možnost by byla generovat daný řetězec u formuláře a na vykreslení ho (šifrovaně) předat jako GET.
<img src="antispam.php?k=uj9Tm" alt="ochrana" /> <input type="hidden" name="captcha" value="uj9Tm"> Tohle je dost průhledné, berte to jako demonstraci. |
||
Časová prodleva: 14 let
|
0