je vraagt je dus af hoe een ingelogd blijven cookie werkt?
in een databas een tabel maken
timestamp_laatsteinlog | id_gebruiker | cookie_data | cookie_verval
iedere keer dat de persoon inlogt via de code verwijder je de cookie en zet je die er opnieuw in (om zo iedere keer 30 dagen of zo na laatste login te laten vervallen.
je vraagt het id van de gebruiker waar de cookie_data gelijk is aan die van de cookie en je kijkt ook even of de echte cookie nog niet vervallen is met cookie_verval (hackers) (let ook op brute force hack is zo mogelijk dus werk daar een systeem achter.)
je kan enkel een cookie zetten helemaal bovenaan je pagina (nog geen output)
nee hoor...alleen dat dat zelfde koekje niet gebruikt kan worden ergens anders...voor iedere sessie wordt een koekje aangemaakt...je kan dan prima ingelogt zijn op twee machines...dat is ook de standaardwerking..wil je dat niet, dan pas moet je gaan rommelen met set_session_save_handler om de sessie info in de db te zetten en te verwijderen indien de gebruiker ergens anders inlogt ;)
Wat ik gebruik is een cookie met daarin een hash en een uniek id. Diezelfde hash en id sla ik op in de database, waarbij dan ook het user_id staat. Als de gebruiker terugkomt naar de site check ik dat cookie tegen de database en komen hash en id overeen, dan log ik de user in. Tegelijk maak ik een nieuw record aan met nieuwe hash en nieuw id, cookie wordt ook opnieuw geplaatst.
Komen ze niet overeen, dan verwijder ik het cookie en is de gebruiker dus niet ingelogd.
Omdat de hash en id niet in de users tabel staan, kan een gebruiker meerdere sessies op die manier open houden over verschillende apparaten.
Edit: in combinatie met dat browserfingerprinting kan je het gevaar van stelen van cookies dan nog verminderen.
Ik gebruik session bij mijn login, maar heb vaak dat ik soms na enige tijd opnieuw moet inloggen, ondanks ik de browser niet gesloten heb.
wordt een sessie na enige tijd vanzelf verwijderd of alleen naa het sluiten van de browser?