Ankündigung

Einklappen
Keine Ankündigung bisher.

Ein Online User Counter

Einklappen

Neue Werbung 2019

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

  • StanBorito
    hat ein Thema erstellt Ein Online User Counter.

    Ein Online User Counter

    Nabend,

    ich habe ein problem und zwar würde ich gerne die Anzahl alle online user als Zahl schreiben komme jedoch nicht hinterher.
    Habe schon einiges von der google suche ausprobiert, wurde jedoch nie was.

    PHP-Code:
    <?php
        error_reporting
    (E_ALL);
        include(
    "mysql.php");

        
    session_start();

        echo 
    "<table>";
        echo 
    " <tr>\n";
        echo 
    "  <td>\n";
        echo 
    "Nickname\n";
        echo 
    "  </td>\n";
        echo 
    "  <td>\n";
        echo 
    "Registrierungsdatum\n";
        echo 
    "  </td>\n";
        echo 
    "  <td>\n";
        echo 
    "Letzter Login\n";
        echo 
    "  </td>\n";
        echo 
    "  <td>\n";
        echo 
    " \n";
        echo 
    "  </td>\n";
        echo 
    " </tr>\n";

        
    $sql "SELECT
                        ID,
                        SessionID,
                        Nickname,
                        DATE_FORMAT(Registrierungsdatum, '%d.%m.%Y') as Datum,
                        Letzter_Login,
                        Letzte_Aktion
                FROM
                        User
                ORDER BY
                        Nickname ASC
               "
    ;
        
    $result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

        while (
    $row mysql_fetch_assoc($result)) {
            
    // existiert eine Session ID und der User
            // war nicht länger als 2 Minuten inaktiv, so wird er als online betrachtet
            
    if($row['SessionID'] AND (time()-60*$row['Letzte_Aktion']))
                
    $online "<span style=\"color:green\">online</span>\n";
            else
                
    $online "<span style=\"color:red\">offline</span>\n";
            echo 
    " <tr>\n";
            echo 
    "  <td>\n";
            echo 
    "<a href=\"profil.php?id=".$row['ID']."\">".$row['Nickname']."</a>\n";
            echo 
    "  </td>\n";
            echo 
    "  <td>\n";
            echo 
    $row['Datum']."\n";
            echo 
    "  </td>\n";
            echo 
    "  <td>\n";
            echo 
    date('d.m.Y H:i \U\h\r'$row['Letzter_Login'])."\n";
            echo 
    "  </td>\n";
            echo 
    "  <td>\n";
            echo 
    $online;
            echo 
    "  </td>\n";
            echo 
    " </tr>\n";
        }
        echo 
    "</table>";
    ?>
    Ich würde das gerne so haben das unten auf der seite steht: Momentan sind ? User online .

    kann mir da eventuell jemand helfen?

  • micha140182
    antwortet
    Hallo,

    wenn du den Timestamp der letzten Aktion in der Datenbank hast, versuch doch mal folgendes.

    PHP-Code:
    $query "SELECT id FROM user WHERE letzte_aktion > time() - 60 * 2";
    $result mysql_query($query);
    $uersonline mysql_num_rows($result); 
    Weiß jetzt nicht, obs syntaktisch korrekt ist, aber so in etwa sol!te es funktionieren.

    Einen Kommentar schreiben:


  • tk1234
    antwortet
    Zitat von StanBorito Beitrag anzeigen
    [PHP]if($row['SessionID'] AND (time()-60*2 < $row['Letzte_Aktion']))
    Dein Datenbankdesign ist defekt. Verwende als Format für Letzte_Aktion keinen Unixtimestamp sondern als Spaltenformat ein Datumsformat der Datenbank - dann kannst du gleich die Datenbank ausgeben lassen wer als online bzw. offline zählt.

    Ich würde das gerne so haben das unten auf der seite steht: Momentan sind ? User online .
    Und was hindert dich daran? Du musst in der Schleife nur mitzählen bei wievielen Usern du "online" ausgibst …

    Einen Kommentar schreiben:


  • uha
    antwortet
    http://php.net/manual/de/function.mysql-num-rows.php

    Allerdings solltest du auf MySQLi umsteigen, denn die MySQL-Schnittstelle gilt als veraltet.

    Einen Kommentar schreiben:

Lädt...
X