problema con codice di sicurezza captcha

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
sto cercando di inserire un controllo captcha in un form che viene assalito quotidianamente da spam. Ho trovato diversi codici in vari siti, ma sempre ho avuto lo stesso risultato, pagina bianca con il simbolo dell'immagine mancante. Ecco il codice:
PHP:
<?php
header ("Content-type: image/png");
$x = 200;
$y = 75;
$code = substr($_GET['code'],0,9);

//spazio tra una lettera e un'altra
$space = $x / (strlen($code)+1);

//Usiamo la funzione imagecreatetruecolor() per creare il riquadro con 256 toni di rosso, verde e blu (da 0 a 255)
$img = imagecreatetruecolor($x,$y);

//colori di sfondo, bordo e 3 colori che useremo per la renderizzazione del testo
$bg = imagecolorallocate($img,255,255,255);
$border = imagecolorallocate($img,0,0,0);
$colors[] = imagecolorallocate($img,128,64,192);
$colors[] = imagecolorallocate($img,192,64,128);
$colors[] = imagecolorallocate($img,108,192,64);

//Tramite queste funzioni andiamo a definire il background e il bordo del riquadro rettangolare
imagefilledrectangle($img,1,1,$x-2,$y-2,$bg);
imagerectangle($img,0,0,$x-1,$y-2,$border);

//srivo il testo
for ($i=0; $i< strlen ($code); $i++)
{
$color = $colors[$i % count($colors)];
imagettftext($img,28+rand(0,8),-20+rand(0,40),($i+0.3)*$space,50+rand(0,10),$color,'font.ttf',$code{$i});
}

//crea linee distorte per camuffare il testo
for($i=0;$i<400;$i++)
{
$x1 = rand(3,$x-3);
$y1 = rand(3,$y-3);
$x2 = $x1-2-rand(0,8);
$y2 = $y1-2-rand(0,8);


imageline($img,$x1,$y1,$x2,$y2,$colors[rand(0,count($colors)-1)]);
}

//visualizza i ati dell'immagine
imagepng($img);

?>

premetto che ho inserito questo codice all'interno del form, dove vorrei far apparire il captcha, ma non so se ho fatto bene, visto che in tutti i siti che ho trovato i metodi erano diversi. Qualcuno può aiutarmi?
 

Discussioni simili