[PHP] Sessies en popup window geeft problemen in IE6

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • EVILSalami
  • Registratie: Februari 2001
  • Laatst online: 16-09 08:53

EVILSalami

Wat kijk je nou?

Topicstarter
Ik ben bezig met het implementeren van een chat script in een site. Het gaat om phpFreeChat http://www.phpfreechat.net/. Nu is het zo dat de chatbox in een popup moet openen. Gebruikers gegevens wil ik via een sessie doorgeven aan de popup window. In FF gaat dit prima, maar in IE niet.

Nu heb ik uiteraard al het een en ander zelf uitgezocht. Het is namelijk een bekend probleem bij IE dat het gewoon een nieuwe sessie begint bij een nieuwe window. De variabelen gaan dus niet mee. Dit kan opgelost worden door de sessie ID mee te geven via GET. Op de volgende manier:

code:
1
<p><a href="" onclick="window.open('chatbox.php?sid=<?php echo session_id(); ?>', '700x500', 'toolbar=no, status=no, scrollbars=yes, location=no, menubar=no, directories=no, width=700, height=500');">Open chat</p>


En dan in de popup window:

code:
1
2
//session_id(strip_tags($_GET['sid']));
session_start();


Deze oplossing heb ik hier gevonden: http://nl.php.net/manual/en/function.session-start.php#51520

Maar nu komt het verveldende. De chatbox werkt op een dusdanige manier dat er op de pagina waarop deze geladen word geen $_GET en $_POST werkt. Althans als deze gebruikt worden dan werkt de chat niet. Dit is een bekende issue, hierover word gesproken in hun officiele forum.

Mijn vraag is of ik dit op een andere manier kan oplossen? Ik hoop dat mijn uitleg duidelijk genoeg is, anders hoor ik het graag :)

Acties:
  • 0 Henk 'm!

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 07-09 11:44

Bergen

Spellingscontroleur

Misschien kun je de gegevens in een cookie opslaan en in de chatbox het koekje weer uitlezen?

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Het is namelijk een bekend probleem bij IE dat het gewoon een nieuwe sessie begint bij een nieuwe window.
Bekend probleem? Heb er nog nooit van gehoord.

Een window.open opent toch geen nieuwe sessie :? Das toch gewoon een nieuw venster in dezelfde sessie. Volgens mij maakt IE pas een nieuwe sessie als ieplore.exe opnieuw wordt gestart.

Vreemd.

Testcaseje: http://www.bosmonster.nl/test

Werkt gewoon prima hoor in alle browsers.

[ Voor 41% gewijzigd door Bosmonster op 15-05-2008 07:34 ]


Acties:
  • 0 Henk 'm!

  • Mafkees
  • Registratie: Oktober 2003
  • Niet online
Een browser maakt een sessie aan zodra je een website bezoekt. De sessie wordt meestal weer vergeten zodra de browser wordt afgesloten. Dat komt omdat het sessie ID in een cookie wordt bewaard en dat cookie wordt weggegooid zodra je de browser sluit.

De gegevens die je als devver zijnde kan opvragen, komen van de server. Niet van de client. (Als je access tot de server hebt moet je eens kijken in de session directory van PHP, da's wel interessant). Het enige dat de client (browser) bijhoudt, is een sessie ID. Dat is meestal een hexadecimale string van 32 bytes. Dat ID wordt in een cookie bewaard (wordt door de webserver aangeboden) en weer verzonden naar de server zodra de browser een request doet.

Op elke pagina waar je sessiegegevens wilt gebruiken, veranderen, of wat dan ook, moet je in PHP session_start() gebruiken. Zo weet de server ook dattie iets moet doen met het sessienummer dat van de browser afkomstig is.

Misschien dat je eens moet controleren of er wel daadwerkelijk een session cookie wordt gezet waardoor het vreemd werkt. Het meegeven van een sessie ID in de URL is imo niet echt nodig, alleen als je browsers hebt die geen cookies ondersteunen (of het hebben uitgeschakeld).

Kun je eens een concreet voorbeeld geven van wat je nu eigenlijk precies wilt? :P

[ Voor 22% gewijzigd door Mafkees op 15-05-2008 07:47 ]


Acties:
  • 0 Henk 'm!

  • EVILSalami
  • Registratie: Februari 2001
  • Laatst online: 16-09 08:53

EVILSalami

Wat kijk je nou?

Topicstarter
Het is toch écht een bekend probleem, google maar. Zelfs hier op GoT staan hierover topics. Het schijnt dat IE random om de zoveel tijd een nieuw process opent voor een nieuw venster, en dan is het dus zo dat een sessie niet mee gaat.

Ik heb het ook uitvoerig getest. In FF krijg ik geen error in IE wel, behalve als ik het in de zelfde venster open, dan krijg ik geen error in IE.

Wat wil je/jullie verder concreet weten?

De chat applicatie is volledig in AJAX. Allemaal classes. De chat kan met de volgende code geimplementeerd worden op een pagina

code:
1
$chat = new phpFreeChat($params);


Hiermee word dan een chatbox geladen op de pagina. Dit wil ik dus in een popup doen. Voor een demo check bijvoorbeeld: http://www.phpfreechat.net/demo/

Het core probleem is dus dat ik gebruikers gegevens wil gebruiken in de chat pagina en deze uit een sessie wil halen, en dat lukt dus niet in een popup window.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

EVILSalami schreef op donderdag 15 mei 2008 @ 22:34:
Het is toch écht een bekend probleem, google maar. Zelfs hier op GoT staan hierover topics. Het schijnt dat IE random om de zoveel tijd een nieuw process opent voor een nieuw venster, en dan is het dus zo dat een sessie niet mee gaat.
Nou, toch maar even gezocht. Het enige dat ik kan vinden is een bug in IE5 die je heel soms de sessie doet verliezen als je windows opent en sluit. Deze bug is al opgelost in een SP voor IE5.

Dus verlicht me over dit moeilijk te vinden "probleem". Want IE6/IE7 doet gewoon wat je verwacht. Een nieuwe sessie wordt pas geopend zodra je een nieuw iexplore.exe proces start.

Het wordt lastig oplossen als ik je probleem al niet eens kan vinden, laat staan reproduceren :P

edit: Het enige dat ik zo nog kan bedenken dat je kan proberen is een P3P header meesturen.

[ Voor 11% gewijzigd door Bosmonster op 16-05-2008 00:00 ]


Acties:
  • 0 Henk 'm!

  • Mafkees
  • Registratie: Oktober 2003
  • Niet online
Je hebt niet toevallig cookies uitgeschakeld? :P

Zou je eens een paar websites kunnen geven die dit probleem beschrijven volgens jou?

[ Voor 47% gewijzigd door Mafkees op 16-05-2008 08:46 ]

Pagina: 1