Det brukar man nog normalt lagra i en databas.
Det lättaste är nog att lagra session id och tid för senaste sidvisning för varje besökare. Sen får du själv bestämma hur länge en besökare räknas som aktiv på sidan.
Därefter är det bara att ställa en fråga till databasen och fråga hur många som varit inne de senaste X minuterna.
Okej , när besökaren kommer in på index.php så sparar man sessionid & tid.
Jag tänker lite såhär, om man dessutom sparar IP, så kan man lägga in på sida2.php , sida3.php ( o.s.v ) en mysql update på just den IP-adressen,
vilket då ger en korrekt anvisning även om besökaren klickar sig vidare på sidan?
För annars om jag t.e.x sätter 15 min på en, och kunden klickar runt på flera sidor,
så blir den inte riktigt korrekt.
Det är samma session id för besökaren så länge den har igång sin webbläsare.
Om du bara går på IP-nummer så kan det bli missvisande om flera besökare kommer från samma IP-nummer. T.ex. skolor, företag m.m. delar oftast på ett IP-nummer ut mot internet.
Jag tänkte köra både IP & sessionid isåfall,
men jag tänkte inte så långt hur ID'et funka :P
Funderar även på att använda samma tabell för övrig statistik, inte bara för "idag-funktionen".
Så .. frågan är hur lång tid man ska sätta på session för aktiv dock ..
10 min? Eller är det för lång tid?
Vi har ju några filmklipp på sidan, så om man läser allting så är man nog redan där uppe i 10..
Det är svårt att säga hur lång tid, du kan ju alltid ändra den efterhand om du tycker det är för mycket/lite. Jag personligen skulle nog ta mer än 10min, speciellt om ni har filmklipp.
du ska dra bort 15min från tiden.
Vad är det för datatyp på fältet där du sparar tiden?
Jag personligen sparar alltid tid som unixtime (int).
då är det bara att skriva:
$time = time() - 900;
$sql = "SELECT COUNT(*) FROM tblSessionLog WHERE log_time > $time";
Finns bättre sätt att skriva sql-sats på men du får ett hum om hur jag tänkter.
Har en annan fråga lite fint samtidigt,
jag har ett fält som heter datum i databasen, som fylls i date("Y-m-d") ...
Jag försökte göra en mysql count mot datum som såg ut som följer: date("Y-m")
men den hittade ingenting.. jag vill söka upp år & månad,
för att få fram antal besökare per månad ..
Någon aning? Går det att söka med ett inkomplett date("Y-m"),
eller blir det fel?