Cookies und der IE6
Stefan Link
- php
Hallo Community,
in Kurzform das Szenario: ich betreibe ein Browserspiel, bei dem man lokale Grafikpfade verwenden kann. Beim Login setzt man in einer Form ein Häckchen, wenn man einen Grafikpfad wählen will, ansonsten wird automatisch der Webpfad genommen. Ich habe also:
Fall a)
webgrafiken, kein häckchen. Dann setze ich im loginfile 5 cookies, nämlich den Grafikpfad, die Userid, etc und leite per Header zur nächsten Seite im Spiel weiter. Das geht tipptopp bei allen Browsern.
Fall b)
user will lokalen Pfad wählen. Ich setze im loginfile 4 cookies (alle ausser dem grafikpfadcookie) und gehe per header auf eine nächste Seite. Dort ziehe ich mir die userid wieder per $user_id = $_COOKIE["user_id"] heraus auch noch tipptopp. Nun kommt aber das komische: Hat der user seinen Pfad gewählt, klickt er auf ein submit und ich setze auf der nächsten Seite das cookie "grafikpfad" und leite wieder weiter auf die erste seite im Spiel. Ab da, ist das cookie user_id z.b. nicht mehr vorhanden. Es steht noch im Cookieordner von IE aber er liest es einfach nicht aus. Mit dem Firefox und Opera (also den w3c konformen ;-) alles super nur der IE will nicht. Hier mal ein paar Codeschnipsel:
Das Loginfile:
Quellcode:
...
// cookie setzen
setcookie("user_id", $user_id, time()+21600, "/");
setcookie("voucher", $voucher, time()+21600, "/");
setcookie("ip", $ip, time()+21600, "/");
setcookie("language", $language, time()+21600, "/");
// Grafikpfad des users nehmen. Es sei denn er hat "Pfad wählen" angeklickt, dann will er wählen
if($choose_path == 1)
{
header("Location: Login_grafikpfad_waehlen.php");
exit;
}
else
{
setcookie("grafikpfad", $grafikpfad_user, time()+21600, "/");
// ob ein cookie gesetzt wird prüft die nächste Seite, da cookies erst mit dem output gesetzt
header("Location: Login_cookie_setzen.php");
exit;
}
...
Wie gesagt, da oben der else-fall, tipptopp.
Die login-grafikpfad_wählen (cookie user_id klappt bestens!):
Quellcode:
$user_id = $_COOKIE["user_id"];
...
<form action="Login_grafikpfad.php" method="post">
<select name="grafikpfad_gewaehlt">
...
</select>
</form>
...
Und hier das komische, die login_grafikpfad:
Quellcode:
// Wird nicht mehr vom IE erkannt
$user_id = $_COOKIE["user_id"];
...
setcookie(grafikpfad....)
...
Sieht jemand meinen Fehler oder weiß jemand, was man tun muss, damit das der IE auch blickt?
Vielen Dank im Voraus!
Grüße
Stefan