Seltsames Sessionverhalten beim Internet Explorer?
hulk
- php
Hallo,
ich habe eine Seite die vom Benutzer durch einen Login mit Namen und Passwort betreten werden kann. Es wird für den Benutzer eine Session erstellt. Läuft die Session ab, dann wird man automatisch auf die Startseite geleitet und man wird darauf hingewiesen das die Sitzung abgelaufen ist und man sich neu anmelden muß.
Codeschnipsel das überprüft ob die Session existiert:
if(session_is_registered('name') && session_is_registered('passwort')){
echo "inhalt";}else{header der zum Login weiterleitet}
Das Script funktioniert wunderbar, aber neulich habe ich die Seite mit dem Internet Explorer 6 getestet.
Ich kam auf die Seite, wollte ich aber auf eine andere Unterseite wurde ich zum Login weitergeleitet.
Die Session muß also irgendwie zerstört worden sein.
Ich weiß das session_is_registered deprecated ist, aber daran kann es nicht liegen, da andere Browser (getestet: Firefox, Mozilla, Opera, Netscape) das Problem ja nicht haben.
Komisch ist auch, das es nur auf dem Webserver passiert und nicht auf meinem localhost.
Wo könnte das Problem also liegen, hat von euch jemand einen Denkansstoß?
mfg
hulk
Hi,
ist die Seite online oder bei dir auf dem lokalen Rechner? Falls ersteres, hostest du nicht zufällig über so eine Free-Domain wie .de.vu oder so? Hatten da in Vergangenheit Probleme mit, der IE "merkt" sich, dass er die Session für eine .de.vu-Domain erstellt hat (schickt das Session-Cookie also wieder hin), wenn du jetzt aber eine Unterseite anklickst dann steht da plötzlich statt der Adresse eine IP von deinem Webserver (nur so als Beispiel) und für den IE ist das damit eine neue Seite, an die er das Cookie nicht weiterschicken darf --> Der Server erkennt keine Session wieder.
MfG
Rouven
Hallo,
es ist eine .net Domain.
Ich habe noch eine andere Domain (.org) mit einem anderen Loginscript auf PHP Sessionbasis. Dort zeigt der Internet Explorer keine Probleme.
mfg
hulk
Hello,
Komisch ist auch, das es nur auf dem Webserver passiert und nicht auf meinem localhost.
Nein, das ist überhaupt nicht komisch sondern ein Versuch von Microsoft, endlich auch noch aus dem Internet das dicke Geld zu holen.
Wo könnte das Problem also liegen, hat von euch jemand einen Denkansstoß?
Der IE 6 erkundigt sich bei M$, ob er die Cookies von Deiner Seite annehmen darf.
Schalt mal die Rückfragefunktion für Cookies ein am Browser während des Testes, damit Du siehst, wann Dir ein Cookie zugeschickt wurde vom Server und dann schau auf dem Server in ein Demo-Script derselben Domain
<?php ### show_cookies.php ###
echo "<pre>\n";
print_r($_COOKIE);
echo "</pre>\n";
?>
Das Ergebnis ist dann interessant.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
Schalt mal die Rückfragefunktion für Cookies ein am Browser während des Testes, damit Du siehst, wann Dir ein Cookie zugeschickt wurde vom Server und dann schau auf dem Server in ein Demo-Script derselben Domain
Irgendwie finde ich die Einstellung nicht. Wo genau finde ich die beim Internet Explorer?
<?php ### show_cookies.php ###
echo "<pre>\n";
print_r($_COOKIE);
echo "</pre>\n";?>
Die Ausgabe die ich bisher bekomme ist
Array
(
)
mfg
hulk
Hello,
Schalt mal die Rückfragefunktion für Cookies ein am Browser während des Testes, damit Du siehst, wann Dir ein Cookie zugeschickt wurde vom Server und dann schau auf dem Server in ein Demo-Script derselben Domain
Irgendwie finde ich die Einstellung nicht. Wo genau finde ich die beim Internet Explorer?
Dann solltest Du erstmal Werkzeug-Übungen machen, bevor Du anfängst zu programmieren ;-)
Such mal unter Extras/Internetoptionen/Sicherheit/Zone Internet anpassen/Cookies
<?php ### show_cookies.php ###
echo "<pre>\n";
print_r($_COOKIE);
echo "</pre>\n";?>
Die Ausgabe die ich bisher bekomme ist
Array
(
)
Na, da siehst Du doch, dass der Explorer keinen cookie zurückschickt an Deinen Server.
Musst natürlich ein Script davor eine Session starten. Hast Du das denn gemacht?
Also erst das Script "session_start.php" aufrufen und dann "show_cookies.php"
Und bitte beide ins selbe Verzeichnis packen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo
Dann solltest Du erstmal Werkzeug-Übungen machen, bevor Du anfängst zu programmieren ;-)
Such mal unter Extras/Internetoptionen/Sicherheit/Zone Internet anpassen/Cookies
Den Menupunkt Cookies gibt es nicht bei meinem Internet Explorer unter dem von dir angegebenen Pfad
Na, da siehst Du doch, dass der Explorer keinen cookie zurückschickt an Deinen Server.
Musst natürlich ein Script davor eine Session starten. Hast Du das denn gemacht?
Sonst würde es wohl kaum bei allen anderen Browsern funktionieren :-)
Komischerweise funktioniert es nun da ich das Script mit dem Superarray $_SESSION programmiert habe.
Seltsam, aber was solls. Schönen Dank für die Hilfe.
mfg
hulk