Welche User sind zur zeit angemeldet

phpmaxx

Grünschnabel
Hallo,
ich habe mal wieder ein Problem. Folgendes.:
Ich habe ein Loginssystem, wo sich User einloogen können. Leider kann ich dabei nicht anzeigen lassen, wer zur Zeit eingeloggt ist. (Nickname)
Meine Idee ist, dass beim Einloggen in die MYSQL Tabelle eine variable von 0 auf 1 gesetzt wird und entsprechend beim Ausloggen wieder auf 0 gestellt wird. Außerdem soll die Variable nach circa 5 Minuten ohne Aktion auomatisch wieder auf 0 gesetzt werden.
Meine Frage nun, ist dies überhaupt möglich und wenn ja wie?
Oder habt ihr andere bessere Vorschläge?
Danke schonmal im Vorraus


Hier der Code
Code:
<?php session_start();

include("mysql.php");
$connect = mysql_query("SELECT * FROM $usertable WHERE LCASE(user) = LCASE('$user1') AND pw = '". md5($pw1) ."'");
if (mysql_num_rows($connect) == 1)
{

$row=mysql_fetch_array($connect);
$user1 = $row['user'];
session_register("user1");
session_register("pw1");
$userid = $row['id'];
$rang = $row['rang'];
$email = $row['email'];

}else{
if(isset($login)){
echo "Deine Eingaben waren fehlerhaft.";
};


echo "<link rel=\"stylesheet\"type=\"text/css\" href=\"../style.css\"><table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"154\" id=\"AutoNumber1\" height=\"1\"><tr><td  bgcolor=\"#004C71\" width=\"154\"   height=1 style=\"padding:4px\"  ><p class=\"menu\"align=\"center\">Login</td>  </tr>  <tr><td   width=\"154\" background=\"../images/back_button_b.jpg\" height=\"4\" align=\"center\"><form method='POST' action='logged.php'>Name<input type='text' name='user1' value='$user1' size='20'></td>  </tr>  <tr><td   width=\"154\" background=\"../images/back_button_b.jpg\" height=\"4\" align=\"center\">Passwort<input type='PASSWORD' size='20' value='$pw1' name='pw1'></td>  </tr>  <tr><td   width=\"154\" background=\"../images/back_button_b.jpg\" height=\"8\" align=\"center\"><p align=\"center\"><input type='submit' name='login' value='Login' style=\"float: right\"></td>  </tr></table></form>";

$rang = "0";

};
if($logout=="1"){
session_destroy();

echo "Sie wurden erfolgreich ausgeloggt";
echo "<META HTTP-EQUIV=\"refresh\" content=\"2;URL=schutz.php\">";

$rang = "0";
};

?>
 
Erweitere deine Usertabelle um den Punkt last_visit und jedes Mal, wenn der User klickt führst du das aus:
PHP:
mysql_query("update $usertable set last_update=unix_timestamp() where id=$userid");
In deiner Anzeige musst du dann nur die Namen der Leute anzeigen, deren last_update >unix_timstamp()-300 ist.
Beim Logout kannst du zudem ja last_update auf 0 setzen, so sollte auch das funktionieren.

Grüße Jan

PS: Eventuell ist auch eine Extratabelle für Onlineuser praktisch.
 
Zurück