derzeitige Benutzer die online sind auf einer externen Seite darstellen

  • Hi,
    gibt es eine Möglichkeit, die derzeitigen Onlineuser auf einer anderen Seite darzustellen?
    Also das jetzt oben irgendwo im Header steht:


    "Im Forum sind zurzeit XX Benutzer online."


    Danke :)


    P.S Ich hab das ganze schon hier gefragt, jedoch wusste da noch keiner eine Antwort.

    • Teambeitrag

    Hi,


    was genau meinst du mit "andere" Seite, eine externe Seite, zum Beispiel im WP-Blog? Esgibt in der WCom irgendwo ein PHP-Schnippsel mit dem du die letzten Beiträge aus der DB auslesen kannst, ich würde sagen damit kannst du das auch realisieren, du müsstest ja nur die Abfrage ändern von letzte Beiträge auf User Online = 1.


    Wenn mich nicht alles täuscht ist das sogar von Hawkes, also kein Gammelskript.


    Ich werde später auch mal suchen...


    Wenn du aber eine andere Forenseite meinst, dann bin ich leider überfragt, das hab ich nun auch schon öfters versucht, aber habs nicht hin bekommen. Bin aber auch nur ein Noob, vermutlich gehts ganz einfach :whistling:

    Deine Anfrage wurde nicht beantwortet? Dann bitte einfach noch mal kurz im Thema nachfragen.


    Mein Blog: TwentyMag <- Lesen, Teilen, Liken, Kommentieren, Abonnieren. Ihr wisst bescheid, was labere ich hier groß rum :eyes:

  • Hey, sorry für meine Beschreibung^^
    Ja, auf einer WP-Seite, also keine Forenseiten. Ich werde mir den Link mal angucken, danke schonmal!


    Ich habe gestern folgendes gefunden: http://jenso.webdiggi.de/index…d&threadID=396&highlight=
    Jedoch kann man da nur seine Statistik (Mitglieder, Threads etc.) darstellen und nicht die aktuellen online User.


    Edit: okay, nun bin ich soweit, dass er alle onlineuser anzeigt. Jedoch zeigt er auch alle Bots an (Google etc).


    Der Code lautet bisher so:


    Da ich von SQL keine Ahnung habe, müsste ich noch folgendes wissen. Es sollen nur die User gezählt werden, die in der Tabelle userID nicht den Wert 0 haben (weil 0 alle Bots sind).


    Vielen Dank :)

    • Teambeitrag

    Versuche es mal mit


    SQL
    "SELECT 
    COUNT(*) AS online FROM
    FROM 
    wcf1_session
    WHERE 
    userID < 1
    ORDER BY 
    username ASC"


    Das sollte eigentlich ergeben: userID grösser als 1 alphabetisch sortiert. Oder müsste das < 0 sein?


    Aber ein ähnliches Skript meinte ich auch in der WCom, passt also.

  • Anzahl Registrierte Benutzer

    SQL
    SELECT count(userID) FROM wcf1_session WHERE UNIX_TIMESTAMP() - lastactivitytime < 900 AND username != "" AND userID != 0;


    Anzahl Suchmaschinenroboter

    SQL
    SELECT count(userID) FROM wcf1_session WHERE UNIX_TIMESTAMP() - lastactivitytime < 900 AND username != "" AND userID = 0;


    Anzahl Gäste

    SQL
    SELECT count(userID) FROM wcf1_session WHERE UNIX_TIMESTAMP() - lastactivitytime < 900 AND username = "";


    Alle aktiven Benutzer

    SQL
    SELECT count(userID) FROM wcf1_session WHERE UNIX_TIMESTAMP() - lastactivitytime < 900;


    lastactivitytime kann man auch verändern 900 sind 15 Minuten
    Liste der Mitglieder


    SQL
    SELECT * FROM wcf1_session WHERE  UNIX_TIMESTAMP() - lastactivitytime < 900  AND username != "" AND userID != 0;


    Und dann mit PHP auslesen


    PHP
    $sql = 'SELECT * FROM  wcf1_session WHERE   UNIX_TIMESTAMP() - lastactivitytime < 900   AND username != "" AND userID != 0';
    $result = mysql_query($sql);
    while($row = mysql_fetch_assoc($result))
    {
    //Ausgabe WIO Liste
    echo '<a href="index.php?page=User&amp;userID='.$row['userID'].'"><span>'.$row['username'].'</span></a><br/>';
    }
  • Vielen Dank erstmal!
    Also wenn ich nun alle registrierten User und Gäste die gerade online sind darstellen will, brauche ich doch folgenden Code:

    SQL
    $sql_online = "SELECT count(userID) FROM wcf1_session WHERE UNIX_TIMESTAMP() - lastactivitytime < 900";
    $online = mysql_fetch_assoc(mysql_query($sql_online)) or die (mysql_error());
    
    
    echo 'Zurzeit online: '.$online['online'].'<br />';


    Da kommt bei mir leider keine Ausgabe (kein Fehler, einfach nichts)
    Vielen Dank für deine Hilfe!


    P.S Jenso schonmal Heroes of Newerth ausprobiert? Viel besser als LoL ;)
    Edit: Noch was: Ich will nicht alle Username aufzählen, sondern nur schreiben "Zurzeit sind 65 Benutzer im Forum online". Nicht das wir uns falsch verstehen :D


    edit: Habs jetzt so gemacht, und es scheint zu funktionieren :D


    SQL
    $sql_online = "SELECT COUNT(*) AS online FROM wcf1_session WHERE UNIX_TIMESTAMP() - lastactivitytime < 900 AND spiderID = 0 ";


    Die spiderID ist doch perfekt zum nehmen ;)
    Falls daran was falsch ist, sags einfach.

    • Teambeitrag

    Sollte doch passen soweit denke ich. Wie hast du das in WP eingebaut, kann man da PHP-Code ohne weiteres in ein Widget einbauen? Oder braucht es da ein Plugin? Ich werde das morgen auch mal in meinem Blog testen 8o


    Wobei bei der SpiderID nicht bekannte Spider ja auch als registrierte User durchgehen denke ich, aber die Spambots sind ja immer nur kurz im Forum, von daher wurst.

  • Ich habs einfach in das header template (und ach in der Sidebar, aber da ist es ne andere Statistik): http://www.hon-fans.de/wp
    Also bei mir stimmt die Useranzahl eigl. fast immer überein, es weicht halt manchmal bis zu 5 Leuten ab, aber das finde ich nicht tragisch (wenn dann sind es eh 5 mehr :D )

    • Teambeitrag

    Ach so, ein Templatefrickler bist du :P Mach ich bei WP auch immer ^^


    Sieht gut aus, gefällt mir, ich werde das auch einbauen und mir eine schöne Headeranzeige zusammenstellen :)


    Die hier haben auch eine Anzeige, aber die stimmt vorne und hinten nicht: http://www.vw-page.at/

    Deine Anfrage wurde nicht beantwortet? Dann bitte einfach noch mal kurz im Thema nachfragen.


    Mein Blog: TwentyMag <- Lesen, Teilen, Liken, Kommentieren, Abonnieren. Ihr wisst bescheid, was labere ich hier groß rum :eyes: