Results 1 to 5 of 5

Thread: Counter -> For the muff.

  1. #1

    Counter -> For the muff.

    Huhu.
    Also : Ich würde mir gerne einen Counten (mit Hilfe von PHP und MySQL) schreiben, der einem anzeigt, wieviele Besucher in den letzten drei (ist egal, von mir aus auch zwei oder eine Minute, wir halt als "Besucher im Netzwerk : " angezeigt) Minuten auf den Seiten waren, auf denen dieses Script eingebau ist.
    Mein Script sieht atm so aus :

    PHP Code:
    <?php
     $ip 
    $_SERVER['REMOTE_ADDR'];
     
    $host gethostbyaddr($_SERVER["REMOTE_ADDR"]);
     
    $timeatm time();
     
     
    $sql "SELECT * FROM `netzwerkcounter` WHERE `kennzeichnung` = '".$ip.$host."'";
     
    $query mysql_query($sql);
     
    $rows mysql_num_rows($query);
     
     if (
    $rows != 0) {
       
       
    $sql "UPDATE `netzwerkcounter` SET `zeit` = '".$timeatm."' WHERE `kennzeichnung` = '".$ip.$host."';";

       
    mysql_query($sql);
     } else {
       
    $sql "INSERT INTO `netzwerkcounter` (`kennzeichnung`,`zeit`) VALUES ('".$ip.$host."','".$timeatm."');";
                
        
    mysql_query($sql);
     }

       
    $timeatm time();
       
    $timeatm $timeatm 180;
       
       
    $sql "SELECT * FROM `netzwerkcounter` WHERE `zeit` >= '".$timeatm."'";
       
    $query mysql_query($sql);
       
    $rows mysql_num_rows($query);
       
       
    $online $rows;

    ?>
    Die Tabelle "netzwerkcounter" hat die Spalten ID, zeit und kennzeichnung.
    Das soll halt alles bewirken, dass nur die Gäste ausgelesen werden, die in den letzten drei Minuten in die Datenbank eingetragen wurden und durch die IP und Hostmaskspeicherung kein Gast zweimal gezählt wird.
    Jetzt habe ich folgendes Problem : Der Inhalt von der Spalte kennzeichnung ist immer die selbe, deshalb wird immer nur ein User online gezählt.
    Die IP sag ich hier mal nicht ist jedenfalls immer dieselbe und die Hostmask ist immer die Adresse vom Server (ich habe keinen eigenen, nur Webspace auf dem Server, also kann ich keine Konfigurationen am Server vornehmen).

    Jetzt hatte NPC mir gesagt, dass er mir "Morgen" (das war vor ca. ner Woche) ein Script schreiben wollte.
    Er hat aber nie Zeit und da ich keine Lust habe, dafür Wochen hinter ihm her zu laufen, frage ich hier, ob mir irgendwer die Lösung schreiben kann.
    Gehen muss es ja, denn das vBulletin, das auf meinem Webspace läuft, kann ja auch IP und Hostmask ermitteln.

    MfG, Kev

  2. #2
    Einen Versuch wäre es wert, "$_SERVER["HTTP_X_REMOTECLIENT_IP"]" statt "$_SERVER["REMOTE_ADDR"]" zu verwenden. Manche Server deaktivieren nämlich, aus Gründen, die mir nicht bekannt sind, letzteres. Ersteres sollte aber dennoch funktionieren.

    Wie gesagt, einen Versuch ist es wert. Zumindest eher, als NPC hinterherzurennen - selbst für deutlich einfachere Sachen kann man das monatelang machen...

  3. #3
    Hab nach deinem Rat geschrieben :
    PHP Code:
     $ip $_SERVER['HTTP_X_REMOTECLIENT_IP'];
     
    $host gethostbyaddr($_SERVER['HTTP_X_REMOTECLIENT_IP']); 
    Funktioniert leider immer noch nicht.
    Diesmal wird in der Spalte "kennzeichnung" gar nichts gespeichert .o.

  4. #4
    Ich würde dir empfehlen, nicht nur die Benutzer der letzten drei Minuten zu zählen, das sind sonst eventuell ein bisschen wenige.

    Außerdem kannst du ein paar Rechnungen auch vereinfachen:
    PHP Code:
    $timeatm time();
    $timeatm $timeatm 180
    wird zu
    PHP Code:
    $timeatm time() - 180
    und
    PHP Code:
    $rows mysql_num_rows($query);
    $online $rows
    zu
    PHP Code:
    $online mysql_num_rows($query); 
    Außerdem könntest du die Anzahl auch direkt auslesen:
    PHP Code:
    $sql "SELECT * FROM `netzwerkcounter` WHERE `zeit` >= '".$timeatm."'";
    $query mysql_query($sql);
    $rows mysql_num_rows($query);
       
    $online $rows
    wird zu
    PHP Code:
    $sql "SELECT COUNT(*) AS anzahl FROM `netzwerkcounter` WHERE `zeit` >= '".$timeatm."'";
    $online mysql_result(mysql_query($sql), 00); 

    Last edited by Manni; 27.11.2006 at 18:28.

  5. #5
    Danke für deine Vereinfachungen aber ich möchte jetzt doch gerne wissen, wie es auch insgesamt funktioniert

    Quote Originally Posted by Manni View Post
    Ich würde dir empfehlen, nicht nur die Benutzer der letzten drei Minuten zu zählen, das sind sonst eventuell ein bisschen wenige.
    Okay, ich denke mal ich erhöhe auf ~15.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •