Session-Variablen werden im IE nicht gespeichert

buddymaster

Mitglied
PHP:
//Vorher kommen noch ein paar Abfragen, ob alle Formularfelder korrekt ausgefüllt sind!
        $_SESSION['user'] = $result['user'];
        $_SESSION['timestamp'] = $timestamp;
        $_SESSION['ID'] = $result['id'];
		echo '<p align="center">Der Login war erfolgreich. Wenn Sie nicht innerhalb weniger Augenblicke weitergeleitet werden, klicken Sie bitte auf weiter!<br /><br /><a href="privatmenu.php">Weiter</a></p>';
?>
		<script language="JavaScript">
		window.setTimeout('window.location.href="privatmenu.php"','100')
		</script>

In dem oberen Code lege ich dieSessionvariablen für die Session fest. Am Anfang des Scriptes initialisiere ich die Session mit "session_start".

Im Firefox funktioniert auch alles einwandfrei.

Auf die Abfrage (in der neuen Seite "privatmenu.php"
PHP:
<?php
session_start();
echo session_id() . "<br />";
echo '<p>Session-Inhalt :' . nl2br(print_r($_SESSION)) . '</p>';
?>

...zeigt er mir auch im Firefox auch User, Timestamp und ID an!

Im IE tut er das leider nicht. Es steht folgende Ausgabe:

Code:
ktqv6kfnsl53a7j9m8qwerpj71
Array ( ) 
Session-Inhalt :1

Für mich heißt das, es wurde wohl eine Session gestartet! Aber warum nimmt der IE meine $_SESSION['Variablen'] nicht

Brauche dringend Hilfe, beiße mir schon den ganzen Tag die Zähne daran aus.

Vielen Dank im Vorraus!
 
Zuletzt bearbeitet:
Hi,

wenn es in einem geht und im anderen nicht würde ich mal auf die übergabe der Session ID tippen. Lass dir die doch mal in beiden Scripten ausgeben. Und schau mal was die Keksverwaltung in IE so von sich gibt

Gruß

katosan
 
wenn es in einem geht und im anderen nicht würde ich mal auf die übergabe der Session ID tippen. Lass dir die doch mal in beiden Scripten ausgeben.

Das ist ja auch schon meine Vermutung! Ausgabe habe ich ja auch schon durchgeführt. Und zwar hiermit:
PHP:
<?php
session_start();
echo session_id() . "<br />";
echo '<p>Session-Inhalt :' . nl2br(print_r($_SESSION)) . '</p>';
?>


Wie gesagt beim IE steht:
Code:
ktqv6kfnsl53a7j9m8qwerpj71
Array ( ) 
Session-Inhalt :1


Beim Firefox werden die Sessionvariablen übergeben, dort steht dann:
Code:
u52pg614no6emjr14kiiu9bjm6
Array ( [user] => honki_tonk [timestamp] => 1227993528 [ID] => 1 )

Session-Inhalt :1

Das Problem ist also bekannt. Aber wie kann ich es lösen!

PS: Was meinst du mit der Cookieverwaltung vom IE? Die kann ich doch höchstens lokal auf meinem Rechner beeinflussen, nicht aber auf dem Rechner eines Users.

PPS: WIe kann ich also den IE überzeugen auch Sessionvariablen zu speichern?
 
hmm, also in deiner Ausgabe hast du nochmal ein session_start(); drinnen das brauchst du da nicht und eigentlich sollte sowas in der Art erscheinen wenn du es trozdem hinschreibst

Notice: A session had already been started - ignoring session_start() in D:\xampp\htdocs\includes\blabla.php on line 2

Lass Dir gleich am Anfang deiner Index alles ausgeben was wie wo wann übergeben wird..

error_reporting ( E_ALL );
echo print_r($_SESSION);

ansonsten kann ich hier in den "schnipsel" keinen Fehler finden.

mfg Spikaner
 
hmm, also in deiner Ausgabe hast du nochmal ein session_start(); drinnen das brauchst du da nicht
Wenn ich eine neue Seite öffne, braucht der server doch die information, das er die variablen aus einer session holen soll. Wenn ich die Session nicht starte, funktioniert die Variablenabfrage über Session doch gar nicht, oder irre ich mich da?

PS: wenn ich die Session nicht neu starte kommt folgende Fehlermeldung:

"Notice: Undefined variable: _SESSION in /var/www/html/web540/html/privatmenu.php on line 6"

Irgendwie ja logisch, woher soll er die Sessionvariablen denn auch kennen!

Lass Dir gleich am Anfang deiner Index alles ausgeben was wie wo wann übergeben wird
...
echo print_r($_SESSION);

Auch das, hab'ich wie man sieht oben schon getan:
PHP:
echo '<p>Session-Inhalt :' . nl2br(print_r($_SESSION)) . '</p>';

Bin der Lösung des Problems nun aber kein Stück weiter!

PPS: Fehlermeldungen werden keine ausgegeben. Auch nicht mit
PHP:
error_reporting ( E_ALL );

Wenn ich beiden IE Einstellungen in Internetoptionen "alle Cookies zulassen" einstelle (also niedrigste Sicherheitstufe), dann funktioniert der LOgin, d.h. die Sessionvariablen werden übergeben. Wie kann ich es aber nun lösen, das dies auch funktioniert, wenn Cookie- Einstellungen z.B. auf "Mittel" stehen?

Habe einfach mal alle Cookies im IE gelöscht. Jetzt funktioniert der Loginauf einmal auch mit "mittleren" Einstellungen.

Da brat mir noch einer einen Storch. Und was hab' ich jetzt den ganzen Tag falsch gemacht
 
Ist die "Neue" Seite ein popup ? falls ja musst Du die Session Id mit übergeben glaube ich entweder via
popup.php?PHPSESSID=<? echo session_id(); ?>

mfg Spikaner

edit: Naja IE halt ich Steig mit den Teil auch net immer durch ;) aber noch ist er halt der meist genutzte Browser..
 
Nein es ist kein POP UP. Und es ist doch zu blöde, jetzt t es schon wieder nicht mit standard einstellungen des IE.Ich muss die ALLe Cookies im Ie zulassen, damit es funktioniert. So kann das aber nicht bleiben. Die meisten IE Nutzer haben die Cookie Einstellunge auf Mittel!

Ich geh kaputt!
 
Dann bleibt dir nur die Variante das du die Session ID nicht über den Cookie weiterzugeben sondern per Datenbank oder File aufm Server.
 
ist die Standardeinstellung von IE nicht das er nur Cookies vom gleichen Server akzeptiert vieleicht liegt es nur am Testsystem, welches eine krude DNS - Auflösung liefert?
 
Die eigentliche Frage sollte bei dem Ganzen ja erstmal folgende sein: soll die Seite auch ohne Cookies benutzbar sein.

Es bringt ja recht wenig, wenn ich als Entwickler meine Cookies aktiviere, ein ängstlicher User diese aber lieber deaktiviert hat.
 
Zurück