ipsperre löscht sich nicht mehr

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • ipsperre löscht sich nicht mehr

    hallo leute,

    folgendes der code sperrt, aber er löscht sich nicht mehr. die sperre hält einfach an. das feld zeit hat das format DATETIME.

    PHP Code:
    $ip $HTTP_SERVER_VARS['REMOTE_ADDR']; 
    $dbanfrage "SELECT * FROM voiting WHERE ip='$ip
    AND date_add(ZEIT, INTERVAL 60 SECOND)>NOW()"

    $result mysql_query($dbanfrage); 
    if (
    mysql_query($dbanfrage)) { 
    kann mit jemand helfen. habe hier im forum schon gesucht.

  • #2


    was habt ihr heute für formulierungen drauf?

    Wieso sollte sich die IP-Sperre löschen?

    Werd mal konkreter!

    Comment


    • #3
      ip löschen

      ok, falsch ausgedrückt. sie soll sich nicht löschen, sondern soll nach einer gewissen zeit einfach einen neueintrag wieder zu lassen.
      besser?

      Comment


      • #4
        ok

        1) was gibt die query zurück
        2) wie wertest du das aus?

        Comment


        • #5
          1. die auswertung habe ich hier vergessen:
          if (mysql_num_rows ($result) > 0)

          Comment


          • #6
            Original geschrieben von in-power
            1. die auswertung habe ich hier vergessen:
            if (mysql_num_rows ($result) > 0)
            2. auswertung erfolgt dann über eine if-abfrage
            oder habe ich dich falsch verstanden?

            Comment


            • #7
              das sagt jetzt gar nichts aus. da man nicht weiß, was du beim if machst.

              sag mal, sind deine buchstaben so begrenz, oder warum schreibst du nicht einfach mal ausführlich was, wie, warum sache ist, und wie es eigentlich sein sollte

              Comment


              • #8
                Re: ipsperre löscht sich nicht mehr

                Original geschrieben von in-power
                hallo leute,

                folgendes der code sperrt, aber er löscht sich nicht mehr. die sperre hält einfach an. das feld zeit hat das format DATETIME.
                der code oben sperrt aber auch nicht mal. der wählt einfach nur den eintrag der ip adresse aus die schon mal gevotet hat.

                ich würde dir vorschlagen du löscht einfach alle einträge die ein bestimmtes alter erreicht haben.

                DELETE FROM voiting WHERE

                und dann schaust du nach ob die ip adresse noch vorhanden ist und wenn nicht soll ein voting möglich sein.

                hoffe ich hab dich richtig verstanden.

                jperl

                Comment


                • #9
                  in dem fall ist das select schon richtig, soweit ich weiß was sache ist.

                  Comment


                  • #10
                    ich weis mir keinen rat mehr!

                    denn ich habe nun weitergelesen und gesucht und dennoch komme
                    ich nicht weiter.

                    die sperre wird einfach nicht mehr aufgehoben.

                    zur zeit stehe ich auf folgendem code:

                    PHP Code:
                    $ip=$_SERVER['REMOTE_ADDR']; 
                    $SQL="SELECT * FROM voiting WHERE ip='$ip' AND date_add(zeit, INTERVAL 60 SECOND)>NOW()"
                    $result=mysql_query($SQL); 
                    $check=mysql_num_rows($result); 
                    if(
                    $check!=0){ 
                    die zelle zeit hat das format datetime

                    wer kann mir helfen??

                    Comment


                    • #11
                      So, da du ja eh net weiterkommst:

                      in deíner tabelle (voting) solltest du 2 Spalten haben (IP und Datum).

                      Diesen Code setzt du ab besten da, wo dein Vote in die DB eingetragen wird:
                      PHP Code:
                      //Checken, ob IP Sperre gesetzt wurde
                      $sql "SELECT COUNT(*) as Anzahl FROM voting WHERE IP = '".$_SERVER['REMOTE_ADDR']."';";
                      $result mysql_query($sql) OR die(mysql_error());
                      if(
                      mysql_result($result0)) 
                      {
                      echo 
                      "Sie haben schon in den letzen <b>5</b> Minuten gevotet. Bitte versuchen sie es später nochmal";
                       echo 
                      "<a href=javascript:history.go(-1)><br>Zurück</center></a></font>";
                      }

                      //IP-Sperre setzen
                      $sql "INSERT INTO voting (IP,Datum) VALUES ('".$_SERVER['REMOTE_ADDR']."', NOW())";
                      mysql_query($sql) OR die(mysql_error()); 
                      diesen Code setzt du am besten ganz am Anfang vom Script:
                      PHP Code:
                      //IP-Sperre "löschen" (nach 5 MInuten)
                      $sql3 "DELETE FROM voting WHERE Datum < DATE_SUB(NOW(), INTERVAL 5 MINUTE)";
                      mysql_query($sql3) OR die(mysql_error()); 

                      Forumregeln!

                      Gute PHP-(tutorial-)Seiten

                      Comment


                      • #12
                        So, da du ja eh net weiterkommst:
                        Nett!

                        Comment


                        • #13
                          danke

                          danke für das script.

                          hatte das problem mittlerweile schon selber gelöst.
                          ich wollte nur nicht das die ip in einer extra id gespeichert
                          werden muss. habe es einfach so gelöst, das ich das datum
                          der datenbank abfrage und mit der aktuelle zeit-86400
                          vergleiche. es lauft nun.

                          trotzdem danke für deine hilfe.

                          Comment

                          Working...