Counter Probs Onlinestatus

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

  • Counter Probs Onlinestatus

    also ich habe ein problem habe den counter code gefunden.
    PHP-Code:
    <?php

     
    //Verbindung zur Datenbank
     
    class config {
        const 
    host 'localhost';
        const 
    user 'dbuser';
        const 
    pass 'dbpass';
        const 
    data 'counter';
     }
     
    mysql_connect(config::host,config::user,config::pass) || die(mysql_error());
     
    mysql_select_db(config::data) || die(mysql_error());
     
     
    //Jetzt
     
    $jetzt time();
     
     
    //Total auslesen
     
    $getcount mysql_fetch_object(mysql_query("SELECT total FROM counter WHERE id = '1' LIMIT 1")); 
     
     
    //IP speichern, falls noch nicht vorhanden
     
    $query mysql_query("SELECT ip, zeit, total FROM counter WHERE ip = '".$_SERVER['REMOTE_ADDR']."' LIMIT 1");
     if(
    mysql_num_rows($query) == 0) {
        
    $newcount $getcount->total+1;
        
    $update mysql_query("UPDATE counter SET total = '".$newcount."' WHERE id = '1' ") || die(mysql_error());
        
    $insert mysql_query("INSERT INTO counter (ip, zeit) VALUES ('".$_SERVER['REMOTE_ADDR']."', '".$jetzt."')") || die(mysql_error());
     } else {
         
    $newcount $getcount->total;
     }
     
     
    //Einträge älter als 2 Tage löschen
     
    $alt $jetzt - (3600*48);
     
    mysql_query("DELETE FROM counter WHERE zeit < '".$alt."' && id != '1'");

     
    //Besucher online auslesen
     
    $cnt_online mysql_query("SELECT COUNT(*) FROM counter WHERE zeit + 300 > '".$jetzt."'"); //300 entspricht 300 Sekunden, also 5 Minuten
     
    $online mysql_result($cnt_online00);
     
     
    //Besucher gestern auslesen
     
    $cnt_gestern mysql_query("SELECT COUNT(*) FROM counter WHERE zeit >= '".mktime(-2400)."' && zeit <= '".mktime(-15959)."'"); 
     
    $gestern mysql_result($cnt_gestern00);
     
     
    //Besucher heute auslesen
     
    $cnt_heute mysql_query("SELECT COUNT(*) FROM counter WHERE zeit >= '".mktime(000)."' && zeit <= '".mktime(235959)."'"); 
     
    $heute mysql_result($cnt_heute00);
     
     
    //Ausgabe
     
    echo "Heute: ".$heute."<br/>";
     echo 
    "Gestern: ".$gestern."<br/>";
     echo 
    "Total: ".$newcount."<br/>";
     echo 
    "Online: ".$online."<br/>";  
     
    ?>
    nur ist es so das der online Status nach 300sekunden laut
    PHP-Code:
    //Besucher online auslesen
     
    $cnt_online mysql_query("SELECT COUNT(*) FROM counter WHERE zeit + 300 > '".$jetzt."'"); //300 entspricht 300 Sekunden, also 5 Minuten
     
    $online mysql_result($cnt_online00); 
    gelöscht wird somit wenn einer länger als 5min auf der seite ist verschwindet er.
    wie kann ich das machen das er immer prüft ob der user noch da ist und dann auch noch den online status richtig anzeigt?????

  • #2
    solange der user auf nichts klickt, erst mal garnicht. alternativ über setTimeout mit javascript und ajax überprüfen.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      wie gesagt habs gefunden und bin
      Meyer
      Newbie

      also ein wenig verstätlicher bitte

      Kommentar


      • #4
        du kannst per php nicht überprüfen, wie lange ein user schon bei dir ist, solange der nicht z.b. auf einen link klickt. das geht nur mit javascript. das sind aber grundlagen.

        zum thema ajax habe ich ein kleines tutorial verfaßt, was die grundlegenden dinge erklärt. zum thema setTimeout empfehle ich selfhtml


        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          nein darum geht es mir ja auch nicth aber er sagt auch 0 online wenn man auf der seite rumsurft das meine ich

          also der online status ist null nach 5min auch wenn wer noch drauf rum surft und klickt
          Zuletzt geändert von Meyer; 23.08.2006, 21:54.

          Kommentar


          • #6
            dann nimm dir mal diese zeile vor:
            PHP-Code:
            $update mysql_query("UPDATE counter SET total = '".$newcount."' WHERE id = '1' ") || die(mysql_error()); 
            da müßte das problem drin stecken.

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              weist du den fehler ? wäre dir sehr verbunden wenn du mir den sagst.

              will mich jetzt nicht erst duch 100te von seiten duch lesen um den einen fehler zu beheben.

              Kommentar


              • #8
                will mich jetzt nicht erst duch 100te von seiten duch lesen um den einen fehler zu beheben.
                ich auch nicht. frag doch den, von dem du das script hast.

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar

                Lädt...
                X