Ik heb een probleem sinds de invoering van SP2. Mensen die bij IE blijven zitten hebben een "security fix" er bij gekregen.
Wanneer ik door middel van window.open een nieuw scherm open, gaat mijn session verloren. Firefox heeft daar geen last van, het is dus geen cache probleem of zo.
Ik heb wat met headers zitten spelen:
<?php
session_start();
header("Cache-control: private");
header('P3P: CP="CAO PSA OUR"');
?>
Maar dat mocht allemaal niet baten. Ik kan ook geen SID mee geven in window.open (bij het uitvoeren van window.open('page.php?<?php echo strip_tags(SID); ?>', '_blank') ).
Heeft iemand een oplossing voor het behouden van de session in een popup window?
Wat je zou kunnen doen is de SID meegeven in een GET, of de SID in een COOKIE proppen. Dan is die sowieso crossbrowser en easy-to-handle :)
Dan is het probleem nog niet opgelost. Ik schreef al dat de SID in GET niet werkte, aangezien enkel window.open('page.php?', '_blank') in de browser verscheen. Er is al een cookie (PHPSESSID) maar die wordt rejected door IE6 XP2 op een of andere manier.

window.open('page.php?<?php echo strip_tags(SID); ?>', '_blank') ).


window.open('page.php?sid=<?php echo strip_tags(SID); ?>', '_blank') ). ?

<?php
// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>


Bron

Dat is het dus ook niet. strip_tags doe ik voor het tegengaan van XSS.
_blank is een hele nieuwe pagina
dus ook nieuwe sessies
doe gewoon is '_blank' voor null
@Han, dat is niet helemaal waar. Dat is hoe IE6XP2 het bekijkt. Firefox deed het wel goed. Volgens firefox is een session geldig zoalng de browser draait.
Ik heb het opgelost trouwens:
window.open('page.php?sid=<?php echo session_id(); ?>', '_blank')
De constante SID is er alleen als er GEEN geldig cookie is ontvangen.
Op page.php begin ik dan met:
<?php
session_id(strip_tags($_GET['sid']));
session_start();
?>

En dat werkt.

Reageren