Non è difficile creare un codice di sicurezza per proteggere i nostri form dalle attenzioni degli spammers. In questo breve tutorial mostreremo come creare un'immagine Captcha contenente una stringa di testo alfanumerica casuale che l'utente dovrà digitare per confermare l'invio del suo messaggio tramite modulo.
Il codice della nostra applicazione non farà altro che produrre una stringa random sulla base della funzione di crittografia md5(), dopo di chè utilizzerà come sfondo della stringa un'immagine conservata in una cartella del nostro server.
L'immagine verrą poi alterata con delle linee colorate in modo da rendere meno leggibile ma comunque comprensibile all'occhio umano il codice di sicurezza. Ecco il listato del nostro script:
<?
session_start();
//creazione della stringa di sicurezza
$codice_random = @md5(microtime());
$stringa_di controllo = @substr($codice_random,0,5);
//acquisizione e modifica dell'immagine
$img_di_sfondo =@imagecreatefromjpeg("images/img.jpg");
$colore_linea = @imagecolorallocate($img_di_sfondo,233,239,239);
$colore_testo = @imagecolorallocate($img_di_sfondo, 255, 255, 255);
//creazione delle alterazioni
//e impostazione del Captcha
@imageline($img_di_sfondo,1,1,40,40,$colore_linea);
@imageline($img_di_sfondo,1,100,60,0,$colore_linea);
@imagestring($img_di_sfondo, 5, 20, 10, $stringa_di controllo, $colore_testo);
//creazione della sessione
$_SESSION['control'] = $stringa_di controllo;
//output Captcha
@header("Content-type: image/jpeg");
@imagejpeg($img_di_sfondo);
?>
La stringa random risultante verrà passata in sessione in modo da poter operare un confronto; se il confronto darà esito positivo il modulo potrà essere inviato.