Starší komentáře ke článku: Počet současně připojených uživatelů v PHP

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Costra

Datum vložení: 18.5.2001 21:18:34

Podle id je to dost nepřesné, proč raději nepoužít sessions?

Avatar

Autor komentáře: Jiří Kocman

Datum vložení: 18.5.2001 23:38:37

Chudák databáze, když to bude věčně tahat. Bylo by lepší třeba uložit na disk soubor s id stránky a ten pak do skriptu vypsat. Přecejenom log se bude přeplňovat, navíc, když bude web hodně navštěvovaný tak se db opravdu zapotí. Nejjednoduchší řešení by bylo podobný skript spouště cronem (třeba oněch zmíněných 5 minut) a uložit si hodnoty do souborů a ty pak naincludovat...

Avatar

Autor komentáře: noname2

Datum vložení: 4.6.2001 8:14:41

hold your horses ;-)
pouzivam stejny system uz davno na jednom serveru kde mam pres 1000UIP/den a databaze je v pohode...
mysql je brutalne rychla databaze ;-)

Avatar

Autor komentáře: Jiří Kocman

Datum vložení: 4.6.2001 11:49:35

1000 UIP za den neni zadna zatez... navic UIP neznamena vubec nic. Dulezity pocet je PV (pageviews). Je jasne, pokud udela jedna UIP treba 5 PV tak to je pro server banalita (50.000 PV za den, ktery ma pres 80.000 sekund... v prumeru ten server neudela ani celou PV za sekundu), az bude server generovat v prumeru 10 stranek za sekundu (ve spicku i stovku) pak se muzeme zacit bavit o zatezi...

Avatar

Autor komentáře: Milan

Datum vložení: 28.6.2001 21:00:07

moc se mi to libi, problem bude ale s pristupem za ruznymi proxynami (jedna IP) - nemohli byste uvest priklad, ktery by pouzival treba jeste cookies - nebo neco, aby to bylo co nejaktualnejsi..

Problem: testuju to na localhoste, ale vetsinou tak po 10.reloadu mi to napise ERROR: v zapisu do tabulky useruseronline. Prosim o pomoc...

Avatar

Autor komentáře: Attila Szabo

Datum vložení: 21.8.2001 10:18:53

Je to dost dobry a uzitocny clanek. Gratuluji.

Avatar

Autor komentáře: Hunter

Datum vložení: 16.10.2002 10:17:32

Je to sice funkční, ale pokud si nějaký laik stáhne hotový script, a podaří se mu úspěšně vytvořit tabulku v databázi, setká se s hláškou
"ERROR: v zapisu do tabulky useronline." což pro něj asi nebude moc potěšivé. Opravte tu chybu, která se skrývá na 13 a 14 řádku za příkazem INSERT a DELETE v názvu tabulky, je tady uvedeno místo useronline => online.

Avatar

Autor komentáře: Hannibal

Datum vložení: 17.9.2005 12:37:37

????? Já si stáhnul hotový script, vytvořil tabulku v databázi a fungovalo. Žádná hláška. Když jsem zkusil kód na 13 a 14 řádku opravit, už to chybu psalo.???? Hunter: tak nevím co si myslel, ale mě to lépe funguje tak jak to je.

Avatar

Autor komentáře: Jake

Datum vložení: 31.8.2004 22:05:22

Zdravím. Moc se mi to líbí a na svém webu to používám. Ale po čase mi začaly chodit stížnosti, že se jim tam objevuje Duplicate entry...
Chvíli jsem nad tím přemýšlel, až jsem přišel na to (jak tady psal přede mnou s tím 10 reloadem), že se během 1 sekundy pokusí řádek uložit 2 či více krát. Proto jsem tento kód poupravil, aby se vkládal pouze jednou za sekundu. Celý funkční kód pak bude vypadat takto:

<?
$timeoutseconds = 300;
$timestamp = time();
$timeout = $timestamp - $timeoutseconds;
if (MySQL_Query("INSERT INTO online VALUES ('$timestamp', '$REMOTE_ADDR', '$PHP_SELF')")) {}
else {
$user = MySQL_Num_Rows($result);
}
MySQL_Query("DELETE FROM online WHERE timestamp < $timeout") or chyba();
$result = MySQL_Query("SELECT DISTINCT ip FROM online WHERE file='$PHP_SELF'") or chyba();
$user = MySQL_Num_Rows($result);

echo "Online: <font class=\"zlute\">$user</font>";
?>

Zpět na článek | Úvodní stránka Interval.cz