serverIP statt REMOTE_ADDR?

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

  • serverIP statt REMOTE_ADDR?

    Hallo,
    ich benutze PHP 4.3.10 und bin bei 1und1 gehostet. Das folgende php-Script soll die Zahl der User die in den letzten 3 Minuten Online waren ermitteln. Dabei werden die IPs und der Zeitpunkt in eine Datenbanktabelle "Online" geschrieben. Das Script meldet keine Fehler, aber wenn man sich den Inhalt der Tabelle anschaut, steht immer nur 1 Eintrag drin und zwar die IP des Servers!!! (habe ich mit phpinfo() ausgelesen). Aber mit $_SERVER['REMOTE_ADDR'] sollte doch die IP des Client!!! ermittelt werden. Habe auch schon $REMOTE_ADDR ohne das Server Array probiert -> gleicher Mist.
    Daher meldet das Script auch immer nur: 1 Besucher online!!!

    PHP Code:
    <?php
    @mysql_connect("db454.1und1.de","...","...") or die("Verbindung gescheitert!");
    mysql_select_db("...") or die("Zugriff gescheitert!");
    $sql "SELECT COUNT(*) as Anzahl FROM online WHERE IP = '".$_SERVER['REMOTE_ADDR']."'";
    $result mysql_query($sql) OR die(mysql_error());
    $row mysql_fetch_assoc($result);
    if(
    $row['Anzahl']) {
    // Nur Datum Updaten
    $sql "UPDATE online SET Datum = NOW() WHERE IP = '".$_SERVER['REMOTE_ADDR']."'";
    mysql_query($sql) OR die(mysql_error());
    } else {
    // Neuer Eintrag
    $sql "INSERT INTO online(IP, Datum) VALUES('".$_SERVER['REMOTE_ADDR']."', NOW())";
    mysql_query($sql) OR die(mysql_error());
    }
    // alte Datensätze löschen
    $sql "DELETE FROM online WHERE DATE_SUB(NOW(), INTERVAL 3 MINUTE) > Datum";
    mysql_query($sql) OR die(mysql_error());
    // Anzahl Ausgeben
    $sql "SELECT COUNT(*) as Anzahl FROM online";
    $result mysql_query($sql) OR die(mysql_error());
    $row mysql_fetch_assoc($result);
    $count=$row['Anzahl'];
    echo 
    "$count User online";
    mysql_close();
    ?>
    Bin für jede Hilfe dankbar!
    Last edited by ebser; 15-08-2005, 15:35.

  • #2
    Re: serverIP statt REMOTE_ADDR?

    rufst du das script direkt über deinen browser auf - oder bindest du es per include ein?
    und wenn per include, erfolgt dieses über das dateisystem - oder etwa über HTTP?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      100% über http..

      Hatte den fall erst vorgestern. Mann hab ich mir nen Wolf gesucht bis ich gesehen habe das der include befehl ein http:// beinhaltet
      gruss Chris

      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

      Comment


      • #4
        Ich rufe das Script im Footer eines Templates meines CMS (PHPWCMS) auf mit:
        PHP Code:
        include("http://www.gfs-ebs.de/scripts/useronline.php"
        ebser

        Comment


        • #5
          Hi,
          ihr habt mich auf die richtige Fährte gebracht, gaub ich.
          Ich rufe das Script nun mit einem spezielle "PHP-Tag" meines CMS auf:
          PHP Code:
          {PHP:scripts/useronline.php
          und siehe da, schon steht eine andere IP in der Tabelle!!!
          Habt Dank!
          Frank

          Comment


          • #6
            Entweder so oder einfach

            PHP Code:
            include("pfad/zum/script.php"); 
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Comment

            Working...
            X