Salve a tutti,
ho un problema con php, in pratica io quando voglio scelgo di bannare un utente dal mio sito attraverso il suo ip, però ho un problema. Scrive il file per bloccare l'ip e funziona.. però quando poi la scadenza del ban è superata, l'ip rimane bloccato. Eseguo un controllo con le date attraverso il nome dell'ip, ecco il codice:
Codice PHP:
<?php
class IP{
private $remote_ip;
public function register(){
$this->remote_ip = $_SERVER['REMOTE_ADDR'];
$f = fopen('reg.php','a+');
fwrite($f,'<form action="block.php" method="POST">Orario : '.date("Y:m:d H:i:s").' Indirizzo Registrato : <input type="text" style="border-color:black;border-width:1px;border-style:solid;background-color:gray;font-weight:bold" readonly="readonly" value="'.$this->remote_ip.'" name="ip_address">[b]Data del ban : [/b]<input type="text" name="data" value="'.date('Y-m-d H:i:s').'" style="border-color:black;border-width:1px;border-style:solid;background-color:gray;font-weight:bold"><input type="text" name="reason" value="Motivo Ban" style="border-color:black;border-width:1px;border-style:solid;background-color:gray;font-weight:bold"><input type="submit" Value="Blocca IP" style="border-color:black;border-width:1px;border-style:solid;background-color:gray;font-weight:bold"></form>
');
fclose($f);
}
public function control(){
$cond = false;
$filename = "";
foreach (glob("./ip_ban/*") as $filename) {
if(strrpos($filename,$this->remote_ip)){
$cond = true;
}
}
if($cond == true){
$contents = explode("^",$filename);
$_break = $contents[1];
if(strtotime($_break) > date("Y:m:d H:i:s")){
die("[b]Sei stato bannato da LiteSystems fino al {$contents[1]}[/b]
Il motivo è reperibile cliccando <a href=\"$filename\">qui</a>
Se rietieni il tuo ban ingiusto contatta lo staff all'email : [email]exsoax@wli.it[/email]");
}else{
unlink($filename);
}
}
}
}
Poi questa classe la richiamo in altre per fare il controllo attraverso :
Codice PHP:
$ip = new IP();
$ip->register();
$ip->control();
Grazie in anticipo