evo moja verzija.
uz pomoć koda koji je postao "glavince".
pošto je postavljeno vrijeme za brisanje usera iz baze 600 sekundi. slučaj: ti si otišao nekuda i ostavio stranicu otvorenu, a ne želiš se još odlogirat. postaviš meta tag u index da ti refresha stranicu svakih 550 sekundi tako da ti se vrijeme u bazi osvježi i nemaš više problema. možeš bit logiran 5 sati ako želiš. ja sam to stavio na svoj guestbook.
Code:
<?php
class showUser {
private $db;
public function __construct() {
global $db;
$this->db =& $db;
}
public function show_all_loged_users() {
mysql_connect('localhost', 'root', 'praksa');
mysql_select_db('DGuestbook');
$max_time = 600;
$now = date("U") - $max_time;
$now = date("Y-m-d H:i:s",$now);
if (isset($_SESSION['login'])) {
$user = $_SESSION['login'];
$query = mysql_query("SELECT * FROM users_online WHERE user = '$user'");
if (mysql_affected_rows() > 0) {
mysql_query("UPDATE users_online SET time = now() WHERE user = '$user'");
}
else {
mysql_query("INSERT INTO users_online (user, time) VALUES('$user',now())");
}
}
mysql_query("DELETE FROM users_online WHERE time < '$now'");
$kod = "SELECT * FROM users_online";
$rs = $this->db->GetAll($kod);
$rs_count = count($rs);
if ($rs_count == 0) {
echo "Nema aktivnih korisnika";
}
else {
echo "<table>";
echo "<tr><td><b>Logirani korisnici:</b></td><tr>";
for($i = 0; $i < $rs_count; $i++) {
echo "<tr><td align=\"right\">".$rs[$i]['user']."</td></tr>";
}
echo "</table>";
}
}
}
[Ovu poruku je menjao dgrubel dana 26.04.2006. u 03:04 GMT+1]