Codice PHP:
<?php
include "config.php";
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");
/* Abbaimo creato la connessione, se non va a buon fine ricevo un messaggio di errore */
//controllo anti-hackers by eurosalute
//puoi applicare questo filtro anche alle altre variabili
$void_mes=0;
$void_img=0;
$void_url=0;
$void_nome=0;
if (isset($HTTP_POST_VARS[messaggio]))
{
$mes_id = $HTTP_POST_VARS[messaggio];
$void_mes += substr_count($mes_id,"http");
$void_mes += substr_count($mes_id,".com");
$void_mes += substr_count($mes_id,"@");
$void_mes += substr_count($mes_id,"ftp");
$void_mes += substr_count($mes_id,"/*");
$void_mes += substr_count($mes_id,"./");
$void_mes += substr_count($mes_id,"../");
$void_mes += substr_count($mes_id,"cgi");
//es.: qui aggiungi le parole da filtrare
//$void_mes += substr_count($mes_id,"parole");
}
if (isset($HTTP_POST_VARS[img]))
{
$img_id = $HTTP_POST_VARS[img];
$void_img += substr_count($img_id,".html");
$void_img += substr_count($img_id,".htm");
$void_img += substr_count($img_id,".xhtml");
$void_img += substr_count($img_id,".xml");
$void_img += substr_count($img_id,".php");
$void_img += substr_count($img_id,".cgi");
$void_img += substr_count($img_id,".asp");
$void_img += substr_count($img_id,".aspx");
//filtro standard :
$void_img += substr_count($img_id,"ftp");
$void_img += substr_count($img_id,"@");
$void_img += substr_count($img_id,"/*");
$void_img += substr_count($img_id,"./");
$void_img += substr_count($img_id,"../");
}
if (isset($HTTP_POST_VARS[url]))
{
$url_id = $HTTP_POST_VARS[url];
$void_url += substr_count($url_id,".gif");
$void_url += substr_count($url_id,".jpg");
$void_url += substr_count($url_id,".png");
$void_url += substr_count($url_id,".jpeg");
$void_url += substr_count($url_id,".bmp");
$void_url += substr_count($url_id,".tiff");
$void_url += substr_count($url_id,".tga");
$void_url += substr_count($url_id,".miff");
$void_url += substr_count($url_id,".xcf");
//filtro standard :
$void_url += substr_count($url_id,"ftp");
$void_url += substr_count($url_id,"@");
$void_url += substr_count($url_id,"/*");
$void_url += substr_count($url_id,"./");
$void_url += substr_count($url_id,"../");
}
if (isset($HTTP_POST_VARS[nome]))
{
$nome_id = $HTTP_POST_VARS[nome];
$void_nome += substr_count($nome_id,"http");
$void_nome += substr_count($nome_id,".com");
$void_nome += substr_count($nome_id,"@");
$void_nome += substr_count($nome_id,"ftp");
$void_nome += substr_count($nome_id,"/*");
$void_nome += substr_count($nome_id,"./");
$void_nome += substr_count($nome_id,"../");
$void_nome += substr_count($nome_id,"cgi");
//es.: qui aggiungi altri caratteri speciali da filtrare
//$void_nome += substr_count($nome_id,"caratteri");
}
//controllo che i &void_... siano diversi da 0(zero):
if ($void_mes != 0) echo("Errore inserimento messaggio! Non sono ammessi link-url, parole o frasi oscene e caratteri speciali.");
if ($void_img != 0) echo("Errore inserimento url immaggine! Non sono ammessi link-url a pagine web e caratteri speciali, solo link-url file immagine. Se non si ha un file immagine, sarà inserita una immagine di default.");
if ($void_url != 0) echo("Errore inserimento url pagina web! Non sono ammessi link-url a file immagine e caratteri speciali, solo link-url pagine web.");
if ($void_nome != 0) echo("Errore inserimento nome! Non sono ammessi caratteri speciali.");
//controllo globale :
if ($void_mes == 0 && $void_img == 0 && $void_url == 0 && $void_nome == 0){
//eseguo la query
$inserimento=mysql_query("insert into box (nome, url, img, messaggio, data) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[url]\", \"$HTTP_POST_VARS[img]\",\"$HTTP_POST_VARS[messaggio]\",now())");
$antispam = $_POST['antispam'];
if ($antispam != "cinque-sette-otto-uno") { die("errore antispam"); }
echo "
<table style='border:0px; font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' cellpadding='3' cellspacing='3' width='484'>
<tr>
<td align='center'>LinkBox by Il telaio...<br>
Il tuo spazio è stato inserito attendi solo pochi secondi... <br>
la pagina verrà aggiornata<br>
<img border='0' src='images/loading.gif'>
<b>Grazie per aver utilizzato LinkBox</b></td>
</tr>
</table>";
//continua loop if
}
else {
$lRemoteIP = $_SERVER['REMOTE_ADDR']; // indirizzo IP in uso
$host_ip_remote = gethostbyaddr($lRemoteIP); //nome host in uso
$url_path_full = ($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); //url completo usato
// il tuo indirizzo email:
$emailto = "penelopesito@altervista.org";
// l'oggetto dell'email es:
$esubject = "Errore Inserimento Box";
// il testo dell'email:
$emailtext = "
Variabile usata:
messaggio = $mes_id
img = $img_id
url = $url_id
nome = $nome_id
IP Remoto = $lRemoteIP
Host Name = $host_ip_remote
URL = $url_path_full
";
# invia l'email a te stesso:
@mail("$emailto", $esubject, $emailtext, "From: $emailto");
//frase esempio:
die("Per favore, ricarica il box e reinserisci tutti i campi del form. Per eventuali errori ripetuti, contatta l'amministratore, grazie.");
}
?>
dimenticavo....volendo puoi inserire tutto il filtro in un file per es. lo nomini filtro_box.php e lo richiami con la funzione require.....