Script PHP per Programmatore PHP, Realizzazione di un codice Captcha per limitare lo SPAM, Script e Risorse PHP.
Realizzare un Codice Captcha
Scritto da: Daniele Tabacco | Categoria: Script PHP|commenti Commenti: (1)

Uno dei primi Script che realizza un Programmatore PHP è sempre un modulo di contatti, che prevede tramite la compilazione di form, l'inoltro di un email automatica al contatto desiderato.
Il problema e che troppo spesso occorre proteggere tali form per evitare fastidiosi problemi di S P A M.
Una delle soluzioni tese ad arginare questo problema è rappresentata dall'introduzione di codice Captcha, un codice alfanumerico generato sotto forma di immagine che deve essere ricopiato in un campo testuale dall'utente, in questa breve guida vedremo come aiutate un Programmatore PHP a realizzarne uno semplice.

Requisiti:
Come unico requisito di questo script segnalo l'utilizzo delle librerie GD di PHP che consentono di lavorare, creare e utilizzare immagini in maniera dinamia, tali librerie sono presenti nativamente nelle ultime versioni di PHP, ed è possibile verificarne la presenza tramite l'utilizzo della funzione php_info();

Lo Script che il Programmatore PHP deve realizzare è rappresentato da un file che denomineremo captcha.php:

Contenuto di captcha.php:

//Avvio della sessione dove conserverò il codice captcha.
session_start();

//Genero un codice di 5 cifre in maniera random.
$random_txt = md5(microtime());
$random_txt = substr($random_txt, 0, 5);

//Creo un immagine png (leggera) sfruttandolo come sfondo (120x40px)
$immagine = imagecreatefrompng("captcha.png");

//Seleziono il colore del testo in formato RGB nel nostro caso
//0,0,0 equivale al colore Black
$colore = imagecolorallocate($immagine, 0, 0, 0);

//Creo un immagine finale, dove i campi numerici identificano
//la grandezza del carattere, la distanza da sinistra e la distanza dal
//margine alto
imagestring($immagine, 100, 35, 15, $random_txt, $colore);

//Creo la sessione che conserva il testo random
$_SESSION['CODICE'] = $random_txt;

//Visualizzo l'immagine per il captcha
header("Content-type: image/jpeg");
imagejpeg($immagine);

Una volta generato il file captcha.php è quasi intuitivo capire i controlli che devono essere fatti. In pratica abbiamo bisogno di visualizzare il captcha nel modulo di contatto e di verificare la corrispondenza nella pagina di risultato:

Codice contenuto nella pagina del modulo:
...
<img src="captcha.php" alt="Captcha"/>
<input name="codice" type="text" id="codice" size="5" maxlength="5"/>
...

Il Programmatore PHP dovrà infine controllare che il codice nella sessione e quello inserito dall'utente siano corrispondenti.

Controllo:
...
if ($_SESSION['CODICE']==$_POST['codice'])
   Invio il form
...

Qui termina questa mia breve guida, spero di aver aiutato qualche Programmatore PHP che muove i suoi primi passi in questo ambiente a arginare i contatti indesiderati, ovviamente lo script va integrato e/o ultimato, ma rappresenta una buona base di partenza per il vostro primo Script Captcha con PHP.

Commenti:
Captcha testuali alternativi
Maxx - Inserito il: 28/04/10
Si può anche usare dei captcha testuali generando delle domande molto semplici a cui i bot degli spammer non sanno rispondere automaticamente, come con questa funzione php: http://www.imparare-php.com/creare-captcha-leggibile-antispam-80/



(non visibile)







Captcha
Copia i caratteri che vedi sopra:

Tags: | torna su


Social Link:
linkedIn


Contattami su Skype:
Il mio stato


Realizzazione Siti Mobile e WebApps iPhone:

Vuoi Sviluppare l'Applicazione Mobile (WebApps) del tuo sito o della tua attività? un Applicazione Web, o pianificare la Realizzazione Sito Mobile? Contattami e scegli un Programmatore di WebApps Mobile e Programmatore di Siti Internet Mobile! Sviluppo WebApps per iPhone e Android

Collaborazioni:

Kuddle Network

antoniomaresca

cocreando

Scambio Link

Parlano di Me:

twago

Archivio Ultimi Articoli:

Risorse utili per un Programmatore PHP:
Sito Ufficiale del PHP , Download di PHP , Manuale e Documentazione PHP , Risorse e Siti Utili.

Cerchi un Programmatore PHP con esperienza consolidata? Molte aziende a Napoli, Milano, Roma e Ferrara si sono affidate a me. Contattami per una Consulenza Gratuita, per Realizzare un Applicazione Web o Sviluppare Siti Internet, Creare Portali Dinamici, o come Programmatore iPhone, Realizzazione Siti Mobile
 
Daniele Tabacco - Questo sito e' interamente realizzato da me secondo gli standard del W3C - css valido w3c css valido xhtml