Originariamente inviato da hinocki
salve a tutti. vorrei mettere un filtro antispam sulla mia shoutbox che ho in homepage.
Ho provato a scaricare qualche captcha ma non ci sono le istruzioni.
Qualcuno saprebbe aiutarmi o indirizzarmi ad uno script antispam con istruzioni?
grazie.
Metti questo nel form (naturalmente devi creare anche il css):
codice:
<div id="footer-dx">
<span class="red">Scrivi il codice</span>
<input type="text" name="validator" id="validator" />
</div>
Questo è il codice captca php:
Codice PHP:
<?php
//Captca-image
session_start();
if (empty($_SESSION['rand_code'])){
$str = "";
$length = 0;
$caratteri = "abcdefghijkmnprstuvwxyz123456789"; /* Caratteri che appaiono come immagine */
for ($i = 0; $i < 4; $i++){ /* il 4 indica il numero di caratteri-immagine che appaiono */
$str .= $caratteri{rand(0,32)};
}
$_SESSION['rand_code'] = $str;
}
$imgX = 60;//Sposta a dx i caratteri-immagine
$imgY = 18;//Sposta in alto i caratteri-immagine
$image = imagecreatetruecolor(60, 20);
$backgr_col = imagecolorallocate($image, 238,239,239);//Colore di sfondo
$border_col = imagecolorallocate($image, 208,208,20);//Colore del bordo
$text_col = imagecolorallocate($image, 46,60,31);//Colore dei caratteri-immagine
imagefilledrectangle($image, 0, 0, 60, 20, $backgr_col);//Cambiando i 4 valori appare un'ombra nera e si può creare un'effetto rilievo o incassato del rettangolo
imagerectangle($image, 0, 0, 59, 19, $border_col);// Sposta il bordino colorato del rettangolo
$font = "arial.ttf";
$font_size = 14;//Dimensione dei caratteri-immagine
$angle = 0;//Ruota obliqui i caratteri-immagine
$box = imagettfbbox($font_size,$angle,$font,$_SESSION['rand_code']);
$x = (int)($imgX - $box[4]) / 2;//Sposta a sx i caratteri-immagine
$y = (int)($imgY - $box[5]) / 2;//Sposta in alto i caratteri-immagine
imagettftext($image,$font_size,$angle,$x,$y,$text_col,$font,$_SESSION['rand_code']);
header("Content-type: image/jpeg");
imagejpeg($image);
imagedestroy ($image);
//Fine Captca-image
//Controlla che il codice Captca inserito corrisponda a quello che appare nell'immagine
if ($_SESSION['rand_code'] != $_POST['validator'])
$errore .= "
<tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\" color=\"red\">Codice errato!</font></center>
";
if ($errore)
echo $errore;
if ($errore):
$ritenta="<META http-equiv=\"REFRESH\" content=\"2; url=http://www.tuo_sito.it/form.php\">";
else:
$meta;
$meta= "
<table bgcolor=\"#55b05a\" width=\"400\"height=\"150\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\" bordercolor=\"#008000\" style=\"border:3px solid;\">";
$meta .= "<tr><td valign=\"bottom\"><center><font family=\"arial\" size=\"4\" color=\"white\">GRAZIE</font><font family=\"arial\" color=\"white\" size=\"5\">".$nome."</font></td></tr></center><tr><td valign=\"top\"><center><font family=\"arial\" size=\"4\" color=\"white\">IL TUO MESSAGGIO E' STATO INSERITO!</font></center></td></tr>";
$meta .= "</td></tr></table>
<center><font family=\"arial\" color=\"#0000ff\" size=\"4\">...fra pochi secondi la finestra si chiuderà</font></center></table>";
session_destroy();
?>