[IE10] Session Variable leer (Weiterleitung via header)

Steusi

Nasenbär
Hallo zusammen,

ich muss diese peinliche Frage einfach mal stellen, da ich nichts dazu finde. Muss ich beim IE10 was die $_SESSION angeht etwas anders machen?

Ich habe ein altes Login-Script, was überall funktioniert außer im Internet Explorer (kann selbst gerade nur den 10er testen).

Ich habe den Code einfach mal minimalisiert:

testA.php
PHP:
if(!isset($_SESSION)) {
	session_start();
}

$_SESSION["test"] = "String";
session_write_close();
header ("Location: testB.php");

testB.php
PHP:
if(!isset($_SESSION)) {
	session_start();
}

var_dump($_SESSION);

Leider bekomme ich nur ein leeres Array zurück geliefert, in anderen Browsern klappt es.
Kann mir jemand sagen, was ich falsch mache?
 
Das sollte mit mWn dem IE eigentlich nix zu tun haben, da die Session ja auf dem Server ist.
Aber erklären warum es mit dem IE10 nicht geht, kann ich auch nicht.
 
Danke Yaslaw, ich habe schon an mir gezweifelt. Dann liegt es sicher an irgendwelchen Sicherheitseinstellungen im IE, mit denen ich mich nicht weiter rum ärgern möchte.
Ich habe es jetzt einfach wie folgt gelöst:

testA.php
PHP:
if(!isset($_SESSION)) {
	session_start();
}

$_SESSION["test"] = "String";
redirect('testB.php');


function redirect($url)
{
	if( !isset($_COOKIE[session_name()]) )
	{
		session_write_close();
		if( preg_match( '/(.*)?(.+)=(.+)/', $url ) )
		{
			header('Location: ' . $url.'&'.session_name().'='.session_id() );
		}
		else
		{
			header('Location: ' . $url.'?'.session_name().'='.session_id() );
		}
	}
	else
	{
		header('Location: ' . $url );
	}
}

Damit Ihr euch das Leben nicht zu schwer macht setzt folgende Bedingungen
PHP:
if(!isset($_COOKIE[session_name()])){
	ini_set('session.use_cookies', 0);
	ini_set('session.use_only_cookies', 0);
	ini_set('session.use_trans_sid', 1);
}
 
Zuletzt bearbeitet:
Zurück