COME EVITARE LO SPAM DAI VOSTRI FORM....
written by phoby 4 www.erroredigitale.tk
PREREQUISITI:
conoscenza base del php + uso delle sessioni [livello base base]
Dovete sapere che esistono dei programmi chiamati bot, che vengono "lanciati"
in giro per il web alla ricerca di campi di testo in cui poter inserire "testo spazzatura".
Immaginate il vostro guestbook fatto di vostra manina che viene preso di mira da uno di questi
programmi,poi un altro, poi un altro ancora, a questo punto il vostro guest-book brulicherà di
schifezza e pubblicità non desiderate.
Probabilmente se state leggendo questo articolo, questo già lo sapevate, passiamo quindi alla
soluzione del problema, che molti di voi già sanno oppure hanno già sicuramente utilizzato:
si tratta di utilizzare il metodo CAPTCHA, acronimo di
Completely Automated Public Turing test to tell Computers and Humans
che tradotto significa "test di turing pubblico e completamente automatico per distinguere
computer e umani".
La tecnica è utilizzata ovunque e consiste nell'inviare un immagine che "rappresenta" una stringa
alfanumerica; a questo punto l'utente è invitato ad immettere il codice disegnato sull'immagine,
se il codice inserito corrisponde alla stringa che c'era nell'immagine si procede, altrimenti si blocca
lo script:
almeno per ora, i bot non sono in grado di interpretare queste immagini per poter ricavarne il codice
esatto.
Ora passiamo al sodo, iniziamo a vedere come creare questa famosa immagine, io vi propongo una soluzione
trovata sul web che potete rivedere e migliorare, ecco il codice:
__________________________________________________________
header("Content-type: image/jpeg");
session_start();
//la stringa da immettere nell'immagine la ricaviamo
//criptando l'ora attuale...e prendendo le prime 6 cifre
$stringa = md5(time());
$risultato = substr($stringa, 0, 6);
//creiamo l'immagine
$im = imagecreatetruecolor(100,30);
//colore del testo
$tx = imagecolorallocate($im, 0, 0, 255);
//scriviamo dentro l'immagine
imagestring($im, 5, 0, 0, $risultato, $tx);
//scriviamo il testo già seririto nell'immagine, nell'array
//di sessione: questo array si mantiene cambiando pagine per
//l'intera sessione dell'utente e quindi sarà possibile
//controllare la correttezza del codice
$_SESSION['CONTROLLO'] = $risultato;
//mostriamo l'immagine
imagejpeg($im);
imagedestroy($im);
?>
___________________________________________________________
Questo codice si occupa di creare l'immagine e settare la variabile di sessione CONTROLLO,
con il valore immesso nell'immagine.
A questo punto salviamo quel codice con nome captcha.php e includiamola nell'html come
con una normale immagine:
La pagina principale è quindi un form di questo tipo:
________________________________________________________________________________________________