Toon posts:

[php] session niet onthouden

Pagina: 1
Acties:

Verwijderd

Topicstarter
bussy met sessions....

Probleem:
Alles werkt, maar zodra ik het venster sluit en weer opnieuw open, wordt er ook een nieuwe session gestart. Kan ik dit ook voorkomen door een instelling in het php.ini file...... Of iets via een cookie???? liever niet dat maar als het niet anders kan....

Verwijderd

Waarschijnlijk zul je dan cookie moeten gebruiken.
Maar wil je dit wel ?
Komt iemand anders op dezelfde pc en heeft ie dezelfde sessie gegevens. Hangt natuurlijk af van wat je ermee doet maar meestal is dit geen handige functionaliteit m.b.t. beveiliging.

Verwijderd

Topicstarter
als ik met cookies wil gaan werken, moeten ze niet langer geldig zijn als 8 uur
wat ik zei, kan het niet anders, dan maar met cookies

but how?

Verwijderd

Met een cookie ja. Gewone session cookies worden onthouden in het geheugen, en zodra de browser afgesloten wordt, wordt dat geheugen weer vrijgegeven. De session cookie is dus echt weg.

Je kunt wel je session_id in een gewone cookie wegschrijven, met een expire time dus, en die wordt wel bij de client op de harddisk opgeslagen. Voor je je sessie start, kun je eerst aangeven welke sessie gestart moet worden:

session_id($_COOKIE['session_id']);
session_start();

Zo heb ik dat weleens toegepast. Let er wel op dat je de nodige controles uitvoert, want op deze manier werkt het wel, maar is het nog niet echt veilig.

Je cookie kun je inderdaad gewoon instellen met 8 uur expire time.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Programmer - an organism that turns coffee into software.


Verwijderd

Wat cheatah verteld klopt wel, maar dan moet je wel de sessie data opslaan in de database, en met de gegevens uit de cookie weer een nieuwe session aanmaken.

Zonder de gegevens zit je namelijk met een lege session_cookie, ook al heb je de session_id opgeslagen.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op 03 november 2002 @ 12:12:
Wat cheatah verteld klopt wel, maar dan moet je wel de sessie data opslaan in de database, en met de gegevens uit de cookie weer een nieuwe session aanmaken.
U gaat niet door voor de afwas machine... of te wel.. nee dit klopt niet...

Lees de http://www.php.net/session nogmaals door...

met name http://www.php.net/manual...sion-set-save-handler.php

Maar je hebt wel een beetje gelijk. Aangezien je maxlifetime moet veranderen. Of de GC moet uitzetten. (kan trouwens ook in php.ini). Uit zetten is trouwens erg onverstandig.
Zonder de gegevens zit je namelijk met een lege session_cookie, ook al heb je de session_id opgeslagen.
Ermm... ik mis hier iets? wat bedoel je hier mee?

Programmer - an organism that turns coffee into software.


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Je wil een session hervatten, maar je gaat er vanuit dat de session_cookie nog op de server staat met daarin alle data van de vorige browser_sessie.

Die session_cookie is echter verwijderd na het sluiten van de browser (zoals ik uit het verhaal bovenaan opmaak)

Het herstarten van de sessie met de session_id levert dus wel een nieuwe sessie, maar niet met daarin de oude informatie.

Tenzij je ervoor zorgt dat die session_cookie niet verwijderd wordt, maar dat is niet echt aan te raden als je een drukke site hebt.

P.S. die post hierboven was van mij, maar vriend van me was nog ingelogd.

Ik blijf er iig vrij nuchter onder....


Verwijderd

Op de server staan een bestandjes in de sessions directory, die alle sessie variabelen bevatten. Volgens mij blijven die daar gewoon staan, totdat je die directory een keer laat opschonen. Daar weet ik echter het fijne niet van.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

maartenvdv schreef op 03 november 2002 @ 12:24:
Je wil een session hervatten, maar je gaat er vanuit dat de session_cookie nog op de server staat met daarin alle data van de vorige browser_sessie.

Die session_cookie is echter verwijderd na het sluiten van de browser (zoals ik uit het verhaal bovenaan opmaak)
Standaard, ja dan wel... Maar je kan een session_cookie een life time opgeven.
dan leeft een cookie langer.
Het herstarten van de sessie met de session_id levert dus wel een nieuwe sessie, maar niet met daarin de oude informatie.
herstarten?
Dat is in zijn geval niet van toepassign aangezien hij de oude sessie weer oppakt.
Tenzij je ervoor zorgt dat die session_cookie niet verwijderd wordt, maar dat is niet echt aan te raden als je een drukke site hebt.
Session_cookie? Je bedoelt waarschijnlijk de session. Waarom niet? het kan juist voordelen hebben. Kijk maar naar GOT daar doen ze het ook.
Je bent waarschijnlijk bang dat of je server volloopt of dat er session dubbel worden uitgedeeld.
• Server die volloopt valt wel mee aangezien een session meestal niet zoveel informatie bevat. 5k/6k is al veel. Daarnaast kan je nogsteeds dmv de GC en lifetime je oude sessie opruimen. Deze lifetime kan je helemaal zelf instellen. 1 dag, maand of jaar... wat je wilt.
• Dubbelle sessie is wel iets wat echt een vervelend probleem is. De kans dat je een dubbelle sessie krijgt is vrij klein maar wel aanwezig. Ze hebben hier een extra cookie geplaatst met daar in extra ID. Deze moet overeenkomen met opgeslagen waarde in de session. Maar in principe los je niet het dubble sessie probleem op maar je voorkomt, dat iemand anders een andere sessie overneemt.

Hoe je het wel oplost weet ik eignelijk niet. Zelf nog nooit mee te maken.
P.S. die post hierboven was van mij, maar vriend van me was nog ingelogd.
FOEI :D

Programmer - an organism that turns coffee into software.

Pagina: 1