ecco cosa ho tirato fuori
Codice PHP:
<?php
$ip = getenv('REMOTE_ADDR');
//connessione al db e scelta tabella
$mc = mysql_connect('x','x','x');
$db = mysql_select_db('IP_LOG');
//lettura dei campi IP, TRY e TIME
$query = "SELECT IP,TRY,TIME FROM IP_LOG WHERE IP== $ip";
$risultato = mysql_query($query);
//fissaggio dei dati ad altrettante variabili
$dati = @mysql_fetch_array($risultato);
list( $ipl, $TRY, $TIME) = $dati;
//se l'ip è già stato loggato
if ($ip == $ipl) {
//tempo trascorso dall'ultima visita
$gap = date(Ymdhis) - $TIME;
//se il numero di tentativi è superiore a 12 e il tempo trascorso è inferiore ai 15 min blocca l'esecuzione
if( $TRY >12 && $gap < 00000000001500) {
//todo: cambiare con un messaggio di errore personalizzato
echo "lol, troppe volte, in troppo poco tempo";
mysql_close($mc);
exit;
//se il numero di tentativi è inferiore o uguale a 12 e il tempo trascorso è inferiore ai 15 min incrementa di 1 il n di tentativi
} elseif($TRY<=12 && $gap < 00000000001500){
$query = "UPDATE IP_LOG SET TRY = $TRY+1 WHERE IP = $ip";
$query_exec = mysql_query($query);
mysql_close($mc);
exit;
//se il tempo trascorso è superiore o uguale ai 15 min azzera il contatore
} elseif($gap >= 00000000001500) {
$query = "UPDATE IP_LOG SET TRY =0 WHERE IP = $ip";
$query_exec= mysql_query($query);
mysql_close($mc);
exit;
}
//se l'ip non è ancora stato loggato
}else{
$time_now = date(Ymdhis);
$query = "INSERT INTO IP_LOG(IP,TRY,TIME) VALUES($ip,'1',$time_now)";
$query_exec = mysql_query($query);
exit;
}
//pulizia degli ip ormai in disuso da più di 7gg
$max_log_time = date(Ymdhis) - 00000007000000;
$query = "DELETE FROM IP_LOG IP,TRY,TIME WHERE TIME < $max_log_time";
$query_exec = mysql_query($query);
mysql_close($mc);
exit;
?>
Ma come mai non funziona? ho fatto qualche errore di concetto, o proprio di codice?
ho provato a farlo andare, ma non fà nulla, non mi aggiunge neanche l'ip alla lista degli ip nel db.
ho provato anche ad immettere a mano il mio ip nella tabella, ma non me lo riconosce...
Dov'è il problema!?!