[php] sessies willen niet blijven

Pagina: 1
Acties:
  • 132 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb een probleem met me sessies, op een of andere manier willen ze me niet ingelogd houden. Jullie zullen wel denken, oh weer een topic hier over, want het is normaal gesproken erg makkelijk te doen. Staat zelfs in jullie faq hoe je 30 dagen ingelogd moet blijven. Helaas werkt dit niet helemaal. Als ik me browser sluit blijf ik wel gewoon ingelogd, ga ik rebooten, ben gewoon nog ingelogd, maar als ik me browser sluit, en de volgende morgen weer ga surfen, dan is me sessie verwijdert... en heb geen id waarom.

Uit jullie faq haalde ik deze code:

PHP:
1
2
3
4
5
ob_start("ob_gzhandler");

session_set_cookie_params(30*24*60*60*3,"",".domein.nl");

session_start();
Dit staat boven 'elke!' pagina van me site.

Hiermee wordt er een sessie geplaatst, en een cookie met de sessie waarde erin. Werkt perfect, mozilla cookie manager zegt zelfs dat me cookie 3 maanden geldig is. Op me site word nergens sessies of cookies verwijdert, of op false waarde gezet. Behalve op de logout pagina, maar daar komt ik nooit.

Ik hoop dat ik me probleem een beetje duidelijk heb uitgelegd, en dat iemand ziet wat ik fout doe, want ik zit met me handen in het haar.

Dit zijn me sessie instellingen, die volgensmij goed zijn.
Afbeeldingslocatie: http://www.desktopxp.net/sessies.gif


EDIT: Kan het iets met 'Registered save handlers files user' temaken hebben? Want bij mij staat er mm mm mm mm achter, en dat komt niet vaak voor.

[ Voor 12% gewijzigd door Verwijderd op 19-07-2003 13:58 ]


Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
waarom werk je dan niet volledig met cookies want sessies zijn bij mijn weten meer bedoeld om "enkel" voudige bezoeken bij te houden.

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
Wanneer je toch met cookies werkt dan kan je session.use_trans_sid op Off zetten. Ik heb die variabele al genoeg sessies zien verzieken. (dit is een wilde gok in de ruimte)

Acties:
  • 0 Henk 'm!

Verwijderd

session_start();
moet volgens mij bovenaan staan...

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
stekkel schreef op 19 juli 2003 @ 16:05:
Wanneer je toch met cookies werkt dan kan je session.use_trans_sid op Off zetten. Ik heb die variabele al genoeg sessies zien verzieken. (dit is een wilde gok in de ruimte)
Wat een onzin. Het enige wat use_trans_sid doet is behalve cookies ook query argumenten aan de URL toevoegen, totdat duidelijk is dat de client cookies accepteert. Het lijkt me sterk dat dat de sessie verziekt.
Verwijderd schreef op 19 juli 2003 @ 16:07:
session_start();
moet volgens mij bovenaan staan...
Bron? In de PHP handleiding staat toch duidelijk:
Note: If you are using cookie-based sessions, you must call session_start() before anything is output to the browser.
Die call mag daar dus prima staan, zolang je maar geen uitvoer verstuurt. Sterker nog, hij moet daar staan (en mag niet naar boven verplaatst worden), wederom volgens de handleiding:
session_start() will register internal output handler for URL rewriting when trans-sid is enabled. If a user uses ob_gzhandler or like with ob_start(), the order of output handler is important for proper output. For example, user must register ob_gzhandler before session start.
Overigens wordt het gebruik van ob_start voor compressie bij nieuwe versies van PHP wel afgeraden:
Note: Use of zlib.output_compression is recommended rather than ob_gzhandler()
Misschien kun je die compressie even uitschakelen tot dit probleem opgelost is? Dan weten we in ieder geval zeker dat het daar niet aan ligt.

Verder lees ik dat je Mozilla gebruikt. Wanneer je je browser opnieuw gestart hebt (en de sessie dus verdwenen is) bestaat je cookie dan ook niet meer? Of bestaat 'ie nog wel maar wordt 'ie simpelweg niet meer meegestuurd? Dit laatste kun je verifiëren met de Live HTTP Headers tool (let dan op de Cookie-headers die de client naar de server verstuurt).

Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
Soultaker schreef op 19 juli 2003 @ 16:37:
[...]
Wat een onzin. Het enige wat use_trans_sid doet is behalve cookies ook query argumenten aan de URL toevoegen, totdat duidelijk is dat de client cookies accepteert. Het lijkt me sterk dat dat de sessie verziekt.
Ik weet wat het doet.
Een zekere grote ISP uit Nederland die PHP had geupgrade bleek in een keer grote problemen te hebben met het inloggen op een niet nader te noemen webmail programma. Iedereen moest 2x inloggen. Wat bleek nou, de default value voor use_trans_sid stond op On. Dat terugzetten op Off loste alles op.

Op een of andere manier kwam de SID uit de cookie niet overeen met de SID uit de uri met als gevolg dat er een nieuwe sessie werd aangemaakt (SID uit de uri overruled SID cookie in dit geval).

Kan me wel iets voorstellen wat de mogelijke oorzaak zou zijn (third party plugin met rotte session code) maar het use_trans_sid op Off zetten was makkelijker.

En wat betreft de PHP manual. Geloof niet alles wat daar staat. Met name op het gebied van sessions want er zijn genoeg PHP versies geweest met bugs en waardoor wat beweerd werd in de manual niet klopte.

De praktijk is altijd minder mooi dan de therorie. Helaas maar waar.

Acties:
  • 0 Henk 'm!

Verwijderd

was die grote isp xs4all of planet, en dat mail progje SquirrelMail ?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok thx, ja dat loste het idd op.

Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
Wat was de oplossing dan?
Pagina: 1