ich wollte eine kleine flood protection mit einer ipsperre machen allerdings bekomme ich schon die bitte warten meldung bei leerer ip datenbank
aufruf:
	
funktionen:
	
							
						
					aufruf:
PHP-Code:
	
	
if (!empty($_POST)) {
$fehler ="";
if (isip_gesperrt(getip())){
    die ("Sie haben schon einen Eintrag gemacht bitte warten");
    }
.....
} 
PHP-Code:
	
	
function getip(){
$pheaders = array(
            'HTTP_X_FORWARDED_FOR',
            'HTTP_FORWARDED_FOR',
            'HTTP_X_FORWARDED',
            'HTTP_FORWARDED',
            'HTTP_CLIENT_IP',
            'HTTP_FORWARDED_FOR_IP',
            'HTTP_VIA',
            'VIA',
            'X_FORWARDED_FOR',
            'FORWARDED_FOR',
            'X_FORWARDED',
            'FORWARDED',
            'CLIENT_IP',
            'FORWARDED_FOR_IP',
            'HTTP_PROXY_CONNECTION'
        );
$ip = $_SERVER["REMOTE_ADDR"];
foreach($pheaders as $i){
    //proxy detected? lets log...
    if($_SERVER[$i])
    $ip = $_SERVER[$i];
    }
return $ip;
}
function isip_gesperrt($ip){
$db = new mysqli($GLOBALS['db_host'], $GLOBALS['db_user'], $GLOBALS['db_password'],$GLOBALS['db_name']);
if (mysqli_connect_errno()) {
        die("Could not connect: ".mysqli_connect_error());
}
$sperre=time()-10;
$jetzt=time();
$ip = getip(); 
mysqli_query($db, "DELETE FROM ipsperre WHERE time<$sperre");
$result = mysqli_query($db,"SELECT ip FROM ip WHERE ip='$ip'");
$count=mysqli_num_rows($result); 
if ($count>0){ 
    mysqli_query($db,"INSERT INTO ip (ip, time) VALUES ('$ip', '$jetzt')"); 
    return false;
}else 
    return true;
 
} 
          
 Moderatorin

Kommentar