Quanti di noi non hanno mai avuto la necessità di creare una form di richiesta contatto da caricare sul proprio sito, o sul sito dei propri clienti, e una volta configurata ci si è resi conto che la procedura richiamava, come il miele per gli orsi continui, messaggi di SPAM?
Ecco un tutorial passo passo per creare una form di contatto di base con il controllo antispam.
1. CREARE UNA FORM DI CONTATTO IN HTML COME SEGUE:
<form action="invia.php"> Nome: <input type="text" name="nome"/><br/> Oggetto: <input type="text" name="oggetto"/><br/> Messaggio: <textarea></textarea><br/><br/> Codice: <input type="text" name="codice"> <input type="button" name="invia" value="invia" onclick="send()";/> </form>
2. Inserire a fianco alla campo text dove andrà inserito il codice di sicurezza questo codice:
<img src="verificationimage.php?<?php echo rand(0,9999);?>"
alt="immagine di verifica" width="180" height="40"/>
Il codice appena inserito richiamerà un file che genererà il codice di sicurezza. Il file verificationimage.php contiene:
<?php header('Content-type: image/jpeg'); $width = 50; $height = 24; $my_image = imagecreatetruecolor($width, $height); imagefill($my_image, 0, 0, 0xFFFFFF); // add noise for ($c = 0; $c < 40; $c++){ $x = rand(0,$width-1); $y = rand(0,$height-1); imagesetpixel($my_image, $x, $y, 0x000000); } $x = rand(1,10); $y = rand(1,10); $rand_string = rand(1000,9999); imagestring($my_image, 5, $x, $y, $rand_string, 0x000000); session_register('tntcon'); $_SESSION['tntcon']=(md5($rand_string).'a4xn'); imagejpeg($my_image); imagedestroy($my_image); ?>
3. Ricordarsi in cima alla pagina della form contatti di avviare la sessione (session_start()) altrimenti poi il controllo nel file send.php non funziona.
4. La pagina con la form di contatto ora è completata; ora tenendo in considerazione il fatto che occorrerà controllare che i campi siano almeno compilati andiamo a vedere cosa è necessario fare nella pagina send.php prima di inviare la mail.
Ovviamente si invierà la mail se il codice di sicurezza è valido.
5. Siamo nella pagina send.php per verificare che il codice sia corretto la procedura è la seguente:
session_start(); if(md5($verif_box).'a4xn' == $_SESSION['tntcon']){ // SE IL CODICE DI SICUREZZA E' VALIDO INVIA LA MAIL } else { //ALTRIMENTI AVVISA CHE IL CODICE NON E' CORRETTO } //elimina i cookie del codice precedente per evitare doppi invii $_SESSION['tntcon']='';
Questo è quanto. Dubbi? Domande? Commentate l’articolo e non dimenticate di condividere sui SOCIAL NETWORK.