PHP-Problem... Zeit

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

  • #16
    Hab ich gesagt!

    Kommentar


    • #17
      Habe ich gesehen, wie du gepostet habe ich noch geschrieben

      Ich habe aber noch in der DB datetime in int geändert.
      --------------------------------------
      Nachts is kälter als draußen !

      Kommentar


      • #18
        Bitte NICHT datetime in integer ändern! Please NOT - that's fatal

        Hier die Tabellendefinition
        Code:
        mysql> describe IPcontrol;
        +--------+----------+------+-----+---------+-------+
        | Field  | Type     | Null | Key | Default | Extra |
        +--------+----------+------+-----+---------+-------+
        | ipadr  | char(17) | YES  |     | NULL    |       |
        | timein | datetime | YES  |     | NULL    |       |
        +--------+----------+------+-----+---------+-------+
        2 rows in set (0.00 sec)
        Hier das Skript mit dem es funktioniert:
        PHP-Code:
        <?php

        $dbhost  
        "localhost";
        $dbuser  "";
        $dbpw    "";
        $dbname  "test";

        $lockmin 1// Sperre in Minuten

        //Verbindungsaufbau zur MySQL
        mysql_connect($dbhost,$dbuser,$dbpw)
           or print 
        "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";
        //Datenbankauswahl
        mysql_select_db($dbname)
           or print 
        "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";

        srand((double)microtime()*648106540098800098);
        $endzahl rand(1,9);

        // generell können alle Records gelöscht werden, die älter als n Minuten sind
        $DeleteQuery "delete from IPcontrol where timein < DATE_SUB(now(), INTERVAL $lockmin minute)";
        $result mysql_query($DeleteQuery)
            or print 
        "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";
        $num_rows mysql_affected_rows();
        if (
        $num_rows != 0) {
           print 
        "Nur zu Deiner Info, ich habe gerade $num_rows abgelaufene Einträge aus der Tabelle entfernt<br>\n";
        }
            
        // Jetzt wird überprüft ob es einen Record mit der IP gibt, der in den letzten n Minuten angelegt wurde
        $SelectQuery "select * from IPcontrol
           where ipadr = '
        $_SERVER[REMOTE_ADDR]'
           AND timein > DATE_SUB(now(), INTERVAL 
        $lockmin minute)";

        $result mysql_query($SelectQuery)
            or print 
        "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";

        $num_rows mysql_num_rows($result);

        if (
        $num_rows == 0) {
           
        // Es exisitier noch keine Eintrag für diese IPAdresse
           
        print "Du mit Deiner IP-Adresse $_SERVER[REMOTE_ADDR] bist neu!<br>\n";
           
        $InsertQuery "insert into IPcontrol values ('$_SERVER[REMOTE_ADDR]',now())";
           
        $result mysql_query($InsertQuery)
               or print 
        "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";
        } else {
           print 
        "Du mit Deiner IP-Adresse $_SERVER[REMOTE_ADDR] Dich gibt es schon!<br>\n";
        }

        Kommentar


        • #19
          Nee, das wäre auch der totale Schwachsinn!

          Kommentar


          • #20
            Dann bin ich als User aber immer neu!

            Nur zu Deiner Info, ich habe gerade 1 abgelaufene Einträge aus der Tabelle entfernt
            Du mit Deiner IP-Adresse 172.177.108.*** bist neu!

            humm...

            Kommentar


            • #21
              Dann setz die Sperre auf 15 Minuten, in meinem Skript ist sie noch auf 1 Minute eingestellt, sonst hätte ich mit dem Testen ewig gebraucht
              (Abgesehen davon kannst Du noch immer checken, ob es mehrere Einträge mit derselben IP in der Datenbank gibt)
              PHP-Code:
              $lockmin 15// Sperre in Minuten 

              Kommentar


              • #22
                @hand,

                das bringt nix... innerhalb der Sperre (15 min) werde ich als neuer User angegeben.

                Kommentar


                • #23
                  Ich kann das leider nicht nachvollziehen. Wenn ich mein Skript nehme und es das allererste mal aufrufe wird folgendes ausgegeben:
                  Code:
                  Du mit Deiner IP-Adresse 127.0.0.1 bist neu!
                  und der Inhalt der Tabelle sieht so aus
                  Code:
                  mysql> select * from ipcontrol;
                  +-----------+---------------------+
                  | ipadr     | timein              |
                  +-----------+---------------------+
                  | 127.0.0.1 | 2003-01-04 10:54:11 |
                  +-----------+---------------------+
                  1 row in set (0.00 sec)
                  Wenn ich dann unmittelbar danach die Seite aktualisiere wird folgendes ausgegeben:
                  Code:
                  Du mit Deiner IP-Adresse 127.0.0.1 Dich gibt es schon!
                  Der Inhalt der Tabelle bleibt unverändert.

                  Nach Ablauf der Sperrfrist wird folgendes angezeigt:
                  Code:
                  Nur zu Deiner Info, ich habe gerade 1 abgelaufene Einträge aus der Tabelle entfernt
                  Du mit Deiner IP-Adresse 127.0.0.1 bist neu!
                  und der Inhalt der Tabelle sieht jetzt so aus
                  Code:
                  mysql> select * from ipcontrol;
                  +-----------+---------------------+
                  | ipadr     | timein              |
                  +-----------+---------------------+
                  | 127.0.0.1 | 2003-01-04 10:57:56 |
                  +-----------+---------------------+
                  1 row in set (0.00 sec)
                  Frage:
                  o Verwendest Du wirklich mein Skript? Da herauskopiert und lediglich Connect-String und DB-Name angepasst?

                  Ich befürchte, ich kann Dir leider in dieser Sache nicht weiterhelfen denn bei mir funktioniert das ganze fehlerfrei.

                  Kommentar


                  • #24
                    funzt wunderprächtig... habe was an deinem tollen Source ausversehen geändert "zum Dazulernen"

                    Kommentar

                    Lädt...
                    X