Aktive Nutzer anzeigen

dr-stein

Mitglied
Hallo liebe Tutorialsler,

ich möchte gerne alle Aktiven Nutzer auf meiner Homepage anzeigen! Dazu habe ich folgenden Code geschrieben:

PHP:
session_start();
include 'confic.php';
 
$username = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['pass']);
 
$sql = 'SELECT * FROM `ec_login` WHERE `user` = "'.$username.'" AND `pass` = "'.$password.'" LIMIT 1';
if(!($result = mysql_query($sql)))
{
    include 'login.php';
}
else {
    $data = mysql_fetch_assoc($result);
    $_SESSION['username']      = $data['user'];
    $_SESSION['password']      = $data['pass'];
    $_SESSION['id'] = $data['id'];
    
    Header("Location: login.php");

/*
Hier wird der User in eine Tabelle eingetragen, damit er als aktiver Nutzer angezeigt wird!
*/

if (!$_SESSION['username']) // Wenn die SESSION leer ist, soll nichts passieren!
{
}
else
{
$sql = "INSERT INTO `usr_web364_1`.`ec_active_user` (`USER`) VALUES ('".$_SESSION['username']."')";   
$sql = mysql_query($sql) or die("mysql_query() fehlgeschlagen: " . mysql_error());
}
}
Das oben passiert beim login! Beim Login lösche ich nun die Spalte:

PHP:
<?php
          $abfrage = "SELECT * FROM ec_login WHERE user LIKE '".$_SESSION['username']."'"; //Daten aus MySQL-Tabelle holen, um unten den Namen zu zeigen, nicht von bedeutung für mein Probelm!
          $ergebnis = mysql_query($abfrage)
            OR die("Error: $abfrage <br>".mysql_error());  
            while($row = mysql_fetch_object($ergebnis))
            {
          echo "<div style=\"margin-top:1px;\">";
          echo "".$row->vorname."&nbsp;".$row->nachname." wurde erfolgreich abgemeldet!</a>";
        }
        
        /*
        Hier wird der Nutzername aus der Tabelle gelöscht, damit er bei den aktiven Nutzern nicht mehr angezeigt wird!
        */
        
        $sql = "DELETE FROM ec_active_user WHERE USER LIKE '".$_SESSION['username']."'";
        $sql = mysql_query($sql) 
?>

Wie kann ich jetzt sagen, dass nach 30 Minuten (oder wie lange auch immer eine SESSION gespeichert wird...) die spalte automatisch gelöscht wird?

Gruß Eike
 
Dazu müsstest du die Zeit der letzten Aktion speichern.
D. h. bei jeder Aktion die Spalte der aktiven Benutzer mit der Zeit aktualisieren und gleichzeitig prüfen, welche Zeit bereits X Minuten alt ist und diese entsprechend entfernen.
 
Hallo Elke,

"automatisch" würde in dem Fall dann heißen, dass du die Abfrage auf jeder Seite einsetzt (auf der du die Prüfung durchführen willst). Sobald dann ein Benutzer kommt und die Seite aufruft wird automatisch die Abfrage und Löschung angestoßen.

Viele Grüße,

Dirk
 
Zurück