Hej! Har du tillgång till databas? Jag använder databaser ja... Jag kan inte tänka mig att det finns något annat sätt. Iofs skulle det ju var möjligt att skapa en enkel text fil på servern som innehåller dom inloggade användarna. Men det skulle ju inte var lättare. Så det enklaste är att använda databas till det. ok. tack för svaren! Lägg till en kolumn i tabellen, som hanterar de inloggade användarna, och gör det till en datetime. Döp den till "last_action" eller nåt och uppdatera den varje gång en användare byter sida. Sedans så lägger du till på varje sida att dom rader i tabellen som inte har ändrats på ett visst antal sekunder tas bort. Tjena! Satt o funderade på om du inte vill använda databas så kan du ha ett Applicationobjekt som innehåller en array av användarnas sessionid. Vid varje access till en sida korrigeras applikationobjekt och håller reda på allas id. Därefter ska det bara vara att göra en len(array) för att få reda på hur många som år inloggade. Hej! Mikael Löhr:Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
jag använder $HTTP_SESSION_VARS föra att undersöka om en person är inloggad eller inte.
Frågan är hur man gör för att generera en lista över samtliga användare som loggat in.
mvh TedSv: Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
Isåfall är det bara att smälla in alla som är inloggade i databasen och sedan räkna dom. Jag vet inget annat bra sätt.
//JonasSv: Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
Ok, det var det jag tänkte på med. Undrade om det fanns andra sätt, men jag antar att det fungerar det med :)Sv: Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
//JonasSv: Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
Jag har skrivit en liten variant redan som fungerar.
Dock är det en del saker som jag inte riktigt vet hur jag ska hantera.
Om man inte loggar ut, utan bara stänger fönstret (då avslutats sessionen så vitt jag vet), men databasen ändras inte. Hur gör man detta?
Alltså, om de bara stänger alla fönstren, hur ordnar man så att deras namn tas bort ur "online"-tabellern?
mvhSv: Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
T.ex.
$query = "delete from <table> where NOW('') - last_action > 7200";
$result = mysql_query($query);
Den koden skulle ta bort alla som inte har gjort nån aktivitet dom senaste 2 timmarna.
Hoppas det här hjälper.
// JonasSv: Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
Sv: Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
Jag tänkte på KaNZers svar. Det innebär att databasen uppdateras endast när någon surfar på siten. Säg att någon bara avslutar sin session genom att stänga Explorer/Netscape. Då ligger sakerna fortfarande kvar i databasen. När sedan en person surfar in 1 timme senare, först då undersöks databasen och tar bort de som varit inaktiv, eller som inte är där längre.
Det borde fungera utmärkt, då det inte spelar nån roll om databasen inte uppdateras förrän nån surfar in. Om ingen är där, behöver inget uppdateras :) ...
Men det jag urprungligen tänkte på var just det Mikael säger:
En global variabel som innehåller alla som har en öppen session just nu. På så sätt uppdateras det vem som är online genom sessionerna. Är en session öppen är den personen inloggad, annars inte.
jag ska titta på båda och se vilken som är bäst/lättast att implementera.
tack för svaren!Sv: Ang $HTTP_SESSION_VARS: hur kan man visa en lista på alla inloggade?
Kan du ge lite mer specifika tips?
Jag tittade på www.php.net men hittade inget om Applicationobjects där.
$http_session_vars - lyckades inte heller printa denna variabel (testade hantera den som en array också).
mvh ted