Ahoj, jak řešíte zjišťování kolik lidí si právě prohlíží vaše stránky?
100% to asi nejde. Problém je totiž zjistit, jestli už návštěvním nekliknul někam jinam a je z tvých stránek pryč. Takže jde pouze o přibližné určení.
Můžeš na to nasadit několik metod. Třeba rozlišení podle IP (samozřejmě proxy zkresluje) údaje. Ukládáš si IP a čas. Pak zjišťuješ, kolik IP kliklo (= je přítomno) v čase TEĎ minus TVŮJ LIMIT. Například dáš uživateli životnost 2 minuty. Pokud neklikne za poslední 2 minuty, považuješ ho za "mrtvého".
Toto je první, co mě napadlo.
zbi: A přesně tak se to dělá, případně se ještě ověřuje user agent, přeci jen pak jde o trochu spolehlivější rozlišení unikátních návštěvníků.
taky můžeš povolat na pomoc sessions, to by mělo být asi nejspolehlivější...
Džej Áre, jak by se to dělalo přes sessions? Vidím tři hlavní problémy:
1. Životnost session na WZ je 24 minut, což pro určení on-line návštěvníků je příliš dlouhá doba.
2. Sessions většinou používáš jen pro přihlášené uživatele, abys jim umožnil dostat se na určité stránky. Používat je pro všechny návštěvníky je (dle mého názoru) dost netypické.
2. Ale hlavně, jak spočítáš, kolik různých sessions je na serveru právě otevřených pro tvé stránky? Žádnou takovou funkci jsem nenašel:
http://us2.php.net/manual/cs/ref.session.php
zbi:
1. no pokud vím, tak platnost session si můžeš nastavovat... (ale nezkoušel jsem)
2. sessions si můžu použít na cokoliv na co jsou vhodné :) Zejména jakékoliv dočasné uchování záznamů o uživateli
3. Přišla by na pomoc ještě databáze... v praxi na jednom webu používám podobné řešení, akorát, že nepoužívám sessions(v době, kdy jsem to programoval, jsem o sessions jaksi nevěděl, ale vytvořil jsem s databází praticky téměř totožný systém :), akorát neumí předáváat SID v odkazech, ale jen v cookies.
Ale na jiné části webu používám stjený způsob, jak navrhoval Nípal, jen tam ještě ukládám i forwardovanou ip v případě, že je počítač na transparentním proxy serverem..
1. Platnost session můžeš nastavit. Pokud vím, tak jediná cesta je v php.ini parametr session.gc_maxlifetime. Jenže jako uživatel WZ nemáš možnost editovat php.ini.
2. Session opravdu můžeš použít na cokoli. Nejsem ale moc přesvědčený, že zrovna na identifikaci on-line návštěvníků je opravdu vhodné každému pouštět session. Otázka názoru.
3. Technicky by to přes SID a db šlo. Zůstáva tedy úvaha, jestli má cenu nasazovat session pro takovou zbytečnost, jako je počet on-line návštěvníků. Identifikace přes IP by měla naprosto dostačovat.
Takže závěrem, session použít lze, je jen otázka názoru, zda to není dělo na vrabce. :-)
no, asi je, ale byla by to nejpřesnější možnost ;) jinak platnost prý jde nastavit i jinak, nedávno se to tu někde diskutovalo.... jen už si nevybavuju, jak to udělali..
Podle ip + user agenta to ale samozřejmě dostačuje, imho ;)