Scrivere il codice di sicurezza CAPTCHA in Php

Pubblicità su lukeonweb.net a partire da 0,5 euro CPM e sconti fino al 50% !!!
Html Css Web Marketing Javascript e Dhtml VBScript Asp Asp.NET Php Sql Visual Basic Java Xml Ajax IIS Meta Tag Generator GIF Animate Clip Art Emoticon Icone Calcio Napoli Area Aziende Registrazione domini Comuni in Italia Cartucce Brother Cartucce Canon Cartucce Epson Cartucce HP Cartucce IBM-Lexmark Cartucce Samsung Cartucce Xerox
SEO Directory - Indicizza GRATIS il tuo sito Web nei motori di ricerca

Homepage + Linguaggi + Php + Articoli + Art.# 447
Autore: Luca Ruggiero

Corso PHP - Creazione di siti dinamici
Impara a creare siti dinamici professionali con PHP! Attestato finale ed assistenza del tutor online.
Vota questo articolo: clicca qui

Esaminiamo in questo articoli come scrivere il codice CAPTCHA (acronimo di Completely Automated Public Turing test to tell Computers and Humans Apart, ovvero test di turing pubblico e completamente automatico per distinguere computer e umani), in PHP, onde gestire i motori di SPAM che invadono quotidianamente i nostri moduli HTML.

Creiamo un file PHP, chiamiamolo captcha.php e corrediamolo del seguente codice:
<?
    session_start();
    $stringa = md5(microtime());
    $risultato = substr($stringa, 0, 5);
    $immagine = imagecreatefromjpeg("captcha.jpg");
    $testo = imagecolorallocate($immagine, 255, 255, 255);
    imagestring($immagine, 3, 20, 10, $risultato, $testo);
    $_SESSION['CONTROLLO'] = $risultato;
    header("Content-type: image/jpeg");
    imagejpeg($immagine);
?>
Creiamo poi un'immagine colorata di dimensioni, più o meno, 80X30 pixel e chiamiamola captcha.jpg.

Richiamiamo poi, all'interno del modulo HTML, l'immagine come segue:
<img src="captcha.php">
Il sistema è pronto, ma spieghiamo cos'abbiamo fatto:
session_start();
apriamo una sessione per salvare il valore del codice di controllo, onde poterne recuperare il valore in fase di validazione dei campi del form HTML;
$stringa = md5(microtime());
$risultato = substr($stringa, 0, 5);
creiamo una stringa che estrae un valore alfanumerico casuale di 5 caratteri;
$immagine = imagecreatefromjpeg("captcha.jpg");
recuperiamo l'immagine JPG da utilizzare per il CAPTCHA;
$testo = imagecolorallocate($immagine, 255, 255, 255);
impostiamo il testo di colore bianco, onde distinguerlo (sia pur un po a fatica) all'interno dell'immagine colorata;
imagestring($immagine, 3, 20, 10, $risultato, $testo);
impostiamo, rispettivamente, la grandezza del testo e la distanza dal left e dal top dei margini interni dell'immagine;
$_SESSION['CONTROLLO'] = $risultato;
recuperiamo il valore del codice di controllo e lo memorizziamo in usa sessione, o volendo andrebbe bene anche un cookie;
header("Content-type: image/jpeg");
modifichiamo le intestazioni della pagina in modo da poterla richiamare come se fosse realmente un file JPG;
imagejpeg($immagine);
mostriamo l'immagine.

© 2001/2008 lukeonweb.net | A cura di Luca Ruggiero - P. IVA 05564851219 | Disclaimer | Privacy | Mappa del sito | Pubblicità | Contatti