ip sperre fehler

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ip sperre fehler

    ich wollte eine kleine flood protection mit einer ipsperre machen allerdings bekomme ich schon die bitte warten meldung bei leerer ip datenbank
    aufruf:
    PHP-Code:
    if (!empty($_POST)) {
    $fehler ="";
    if (
    isip_gesperrt(getip())){
        die (
    "Sie haben schon einen Eintrag gemacht bitte warten");
        }
    .....

    funktionen:
    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;
     


  • #2
    Hallo,

    heißt die Tabelle nun ip oder ipsperre? Außer beim Verbinden sehe ich keinerlei Fehlerbehandlung.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      PHP-Code:
      if ($count>0){ 
          
      mysqli_query($db,"INSERT INTO ip (ip, time) VALUES ('$ip', '$jetzt')"); 
          return 
      false;
      }else 
          return 
      true;
       

      Da setzt du die IP nochmals rein, wenn count bereits grösser als 0 also ein Eintrag vorhanden ist und umgekehrt. Es mag auch noch an sonstwas liegen, aber das ist sicher schon einmal ein Fehler.


      PHP-Code:
      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'
              
      ); 
      Darf ich fragen woher du diesen Array hast? Werden die alle wirklich manchmal gesetzt?

      Kommentar


      • #4
        Danke, ich hab wohl dier if else bedingung vertauscht das array dient dazu um die ip zu bestimmen wenn man über einen proxy kommt.

        Kommentar


        • #5
          Es war schon klar wozu er gedacht ist, ich habe gemeint woher du diesen Array hast ich meine eine Quelle dazu. Ich habe bei einem Teil noch nie gehört, dass diese Systemvariabeln gesetzt werden, deshalb habe ich gefragt.

          Kommentar

          Lädt...
          X