[ zero_83 @ 25.04.2006. 19:08 ] @
Zanima me PHP skripta koja omogucuje prikaz koliko
trenutno ima online posetilaca na sajtu ....
Znam da baratam sa PHP-om i MySQL-om (tako da mi ne treba detaljno uputstvo), ali nikako da mi padne na pamet
ideja, kako ovo da uradim ....
[ mulaz @ 25.04.2006. 20:25 ] @
svaki user kad bilosta otvori na stranici.. u jednu tabelu se upise username i vreme otvaaranje stranice, i istovremeno brisu svi upisi stariji od recimo 5min.
znaci:

perica : [vreme otvaranja stranice]
jovica [vreme otvaranje stranice]
marica :[vreme otvaranja stranice ]


e sad kad "dule" nesto otvori, upise se u tabelu:
dule : [vreme otvaranja stranice ]
i istovremeno brise recimo perica kod kojeg je vreme od otvaranja stranice duze od 5 minuta
[ Mali Misha @ 25.04.2006. 20:37 ] @
... onda prilikom generisanja broja ocistis sve *stare* i izbrojis preostale: to su trenutno *aktivni* registrovani posetioci. goste mozes da pratis na isti nacin preko ip.
[ glavince @ 25.04.2006. 21:22 ] @
Ovako ja registriram koliko imam usera online:
Code:

$max_time   = 120;
$now = date("U") - $max_time;
$now = date("Y-m-d H:i:s",$now); 
session_start(); 
$idses = session_id(); 
$query = mysql_query("SELECT * FROM users_online WHERE sess_id = '$idses'"); 
if (mysql_affected_rows() > 0)  {
mysql_query("UPDATE users_online SET time = now() WHERE sess_id = '$idses'"); 
}else {
mysql_query("INSERT INTO users_online VALUES(0,'$idses',now())"); 
}
mysql_query("DELETE FROM users_online WHERE time < '$now'"); 
$count_query = mysql_query("SELECT COUNT(*) as TOTAL FROM users_online"); 
$user_count  = mysql_result($count_query,0,"TOTAL"); 

Prethodno kreiraj tablicu users_online;
id
sess_id
time
[ zero_83 @ 25.04.2006. 22:32 ] @
Hvala, razmisljao sam i o tome, ali ipak ne dobijam
tacan podatak, vec je u pitanju priblizan, jer
perica, jovica i mikca mogu da budu online i 2 sata, a da
ih brojac ipak ne racuna !!! (teoretski)

Hvala u svakom slucaju, izgleda da je ovo jedini nacin !!! :)
[ Davor Grubelić @ 26.04.2006. 01:31 ] @
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]
[ sk8 @ 01.09.2006. 23:43 ] @
Moze li mi neko malo pojasniti kako da uz pomoc ovog koda da stavim na sajt prikaz online korisnika?