webForumDet fria alternativet

Köra en kod när sessionen dör

PHP

3 svar · 266 visningar · startad av pakmannen

Medlem sedan dec. 2002227 inlägg
Frågan#1

Hej. Håller på med en inloggning, och för att förhindra att flera kan vara inloggade samtidigt har jag lagt till ett fält i databasen som blir 1 eller 0. Inloggningen använder sessioner.

Så, eftersom jag vill att databasen skall ändras när sessionen går ut, så skulle jag behöva veta var man ska lägga sån kod. Och finns det någon sådan funktion överhuvudtaget?

Medlem sedan okt. 2004392 inlägg
#2

Jag tipsar att du använder senast inloggad
Om man har varit inloggad mer än 1 (2, 3, 0.5.. du bestämmer) timmar så kommer inloggningen att markeras som "offline" och man måste logga in igen för att sätta om sin inloggning! På så vis så behöver du inte använda 1 eller 0. Bara om senaste inloggning är mer än 1 (tex) timma så är man offline!

Hoppas du fattar vad jag menar !

Medlem sedan dec. 2002227 inlägg
#3

Tja, nu är det ju inte det som är problemet, utan hur jag gör kod (alltså kod för att ändra i databasen) när sessionen "dör" efter 20 minuter eller vad det nu är för tidsgräns. Det finns nämligen någon sån här funktion i ASP. Där man kan skriva kod som skall köras varje gång en session automatiskt dör.

Hoppas ni fattar vad jag snackar om.. :)

Medlem sedan mars 20025 907 inlägg
#4

Det finns ingen motsvarighet till asp:s "Session_OnEnd" (som man förövrigt inte ska lite helt på.. det händer titt som tätt att koden aldrig körs!) i php. Enklaste sättet är att varje gång en användare klickar på en länk/uppdaterar en sida så sparas aktuell tidpunkt ner i ett fält i databasen. När sedan en annan besökare vill logga in så får en kontroll göras mot databasen att ingen användare varit aktiv inom de senaste X minutrarna.

267 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)