serverIP statt REMOTE_ADDR?

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

  • 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!
    Zuletzt geändert von 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.

    Kommentar


    • #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]

      Kommentar


      • #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

        Kommentar


        • #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

          Kommentar


          • #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]

            Kommentar

            Lädt...
            X