[PHP] Zelfgemaakt sessie systeem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Hi

Ik heb een eigengemaakt sessie systeem wat ongeveer als volgt werkt:
- user komt op een pagina en krijgt meteen een cookie met een hash
- als de user goed inlogt gaat deze hash samen met het userid de sessie tabel in
- als de user na stel een dag terugkomt is hij nog steeds ingelogd

Geen probleem tot dusver. Echter wil ik ook aanbieden om niet ingelogt te blijven, zeg maar net zoals het native sessie systeem van PHP waarbij je een cookie met PHPSESSID krijgt. Als je dan de browser sluit verdwijnt die cookie lokaal en op de server na 3 uur ofzo, afhankelijk van de instelling van de server.

Nu vraag is me af hoe ik dat PHPSESSID kan simuleren in mijn systeem zodat mijn eigen gemaakte cookie met een hash ook verdwijnt als de browser wordt gesloten.

Ik wil dus met mijn eigen gemaakte sessie systeem er voor zorgen dat de cookie verwijdert wordt als de user zijn browser sluit. Dan regel ik op php niveau wel dat de sessie entries in de sessie tabel na 3 uur worden verwijderd.

Ik heb met de cookie editor van firefox gekeken naar het PHPSESSID cookie, en ook een ASPSESSIONID, en ze lijken geen expire date te hebben, logisch natuurlijk want ze vervallen bij het sluiten van de browser.

Kan iemand mij zeggen hoe ik zelf zon cookie kan maken die bij het sluiten van de browser verdwijnt, of hoe ik dit anders kan oplossen? Ik wil in ieder geval niet het standaard sessie systeem van php gebruiken.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
*schaam* als ik de lifetime van een cookie op 0 zet geldt hij alleen tijdens de sessie van de browser. Maw: ik ben er al uit!

Ik zal effe uitleggen hoe ik het nu heb gedaan

- user komt op de site, krijgt een cookie met hash die verloopt aan het einde van de browsersessie
- als de user aanvinkt dat hij ingelogd wil blijven wordt de lifetime van de cookie met 1 jaar verlengd
- als de user het niet aanvinkt is de sessie weg uit de database na 1 dag, dit gebeurt op php niveau

Erg handig systeem om de standaard lifetime van je sessie te omzeilen en een mooi eigen sessie systeem te gebruiken

[ Voor 67% gewijzigd door Y0ur1 op 26-08-2005 00:38 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Bij de standaard sessie kun je ook de cookie settings aanpassen. Daarnaast kun je je eigen handlers definieren voor het opslaan, inladen en garbage collecten van je sessies.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'