[PHP] Session doet raar

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BlackShadow
  • Registratie: Februari 2002
  • Laatst online: 17:38
Ik zit met een raar probleem:

PAGE: session1.php:
--------------------
<?
session_start();
$_SESSION['test'] = "aaa";
echo $_SESSION['test'];
?>

PAGE: session2.php:
--------------------
<?
session_start();
echo $_SESSION['test'];
?>

Als ik session1.php open en daarna naar session2.php in hetzelfde
browservenster ga, dan is werkt alles perfect.
Maar als ik (terwijl het eerste browservenster nog open staat, en dus
de sessie nog actief zou moeten zijn) een nieuw browservenster open en
naar session2.php ga, dan krijg ik helemaal niets te zien. De sessie
is dus verdwenen.

Dit probleem krijg ik alleen bij Internet Explorer, bij Mozilla
Firefox heb ik dit probleem niet. Ik heb dit probleem op verschillende computers.

Het probleem is:
Als ik inlog op mijn site, wordt er een cookie geplaatst met een challenge in.
Als nu iemand inlogt met een cookie checkt hij de database en bij een geldige challenge wordt de database + de cookie aangepast.

Verder controleer ik op een sessie, dus als er al een sessie aanwezig is, dan controleer ik niet meer op de cookie.

Probleem is nu dat als ik de website 2 keer open dat de challenge in de database niet meer klopt. Maw: er zijn dus 2 sessies en 1 cookie, dit kan toch nooit goed gaan?

Is er geen manier om php handmatig te laten controleren op een alreeds geopende session?
Of moet ik het probleem ergens anders zoeken?

Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Het idee achter een sessie is dat hij maar bestaat tot het browservenster wordt gesloten, je kan met session_set_cookie_params() e.d. wel voormekaar krijgen dat de sessie langer blijft bestaan. Zie http://nl3.php.net/manual...ion-set-cookie-params.php

Acties:
  • 0 Henk 'm!

Verwijderd

Ik dacht idd ook dat session niet meer bestaat nadat je je browser sluit.
Het probleem is:
Als ik inlog op mijn site, wordt er een cookie geplaatst met een challenge in.
Als nu iemand inlogt met een cookie checkt hij de database en bij een geldige challenge wordt de database + de cookie aangepast.

Verder controleer ik op een sessie, dus als er al een sessie aanwezig is, dan controleer ik niet meer op de cookie.

Probleem is nu dat als ik de website 2 keer open dat de challenge in de database niet meer klopt. Maw: er zijn dus 2 sessies en 1 cookie, dit kan toch nooit goed gaan?

Is er geen manier om php handmatig te laten controleren op een alreeds geopende session?
Of moet ik het probleem ergens anders zoeken?
Hoezo zijn er 2 sessions je kunt toch controleren of er al een session bestaat?
Ik snap niet echt wat je bedoeld...

Acties:
  • 0 Henk 'm!

  • BlackShadow
  • Registratie: Februari 2002
  • Laatst online: 17:38
de browser wordt niet gesloten, er wordt gewoon een 2e browservenster geopend. session_start() moet er dan toch voor zorgen dat die sessie blijft gelden?

Mijn probleem anders uitgelegd:
Iemand met een valid cookie bezoekt de site, er wordt een session aangemaakt. de bezoeker is ingelogd.
Hij opent een 2e browservenster, php vindt de sessie niet, controleert op cookie en stelt een sessie in.

Het probleem is nu dat de cookie bij het openen van het 2e browservenster een andere challenge krijgt.

Acties:
  • 0 Henk 'm!

Verwijderd

Ja ik heb even gekeken en getest. En bij mij deed hij precies hetzelfde.
In firefox werkte het, terwijl het in IE niks deed.

Ik heb het idee dat dit een bug in IE is. En ik heb even gezocht.
Heb dit kunnen vinden. Het is niet het probleem, maar er zit wel ergens wat fout...

http://support.microsoft....cid=KB;EN-US;Q311072&#kb3

Weer een reden erbij om geen IE te gebruiken. :P :*)

[ Voor 8% gewijzigd door Verwijderd op 28-01-2005 19:52 ]


Acties:
  • 0 Henk 'm!

  • BlackShadow
  • Registratie: Februari 2002
  • Laatst online: 17:38
irritante bug dan :s

Is er een manier om in php zelf te kijken of er al een sessie van hetzelfde domein loopt?

Acties:
  • 0 Henk 'm!

  • BlackShadow
  • Registratie: Februari 2002
  • Laatst online: 17:38
klein schopje :o

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:44

crisp

Devver

Pixelated

Blijkbaar deelt een IE-window dat niet vanuit het oorspronkelijke window geopend is niet de memory waarin de sessie-cookies worden opgeslagen. Het zou me niets verbazen als dat een gevolg is van een recente security-patch.
Een workaround zou zijn om met permanente cookies te werken om de sessie te hervatten.

Intentionally left blank

Pagina: 1