Probleme mit header(refresh...) und IE6
Elya
- php
Hallo,
in einer etwas komplexeren PHP-MySQL-Anwendung, die für einen eingeschränkten und hinreichend beinflußbaren Benutzerkreis Berechnungen durchführt, haben wir einen header-refresh verwendet, um die browserinterne zurück-Funktion an bestimmten Stellen einzuschränken/zu unterbinden.
Das sieht so aus:
header("Refresh: 1; URL=xyz");
Funktioniert seit etwa einem Jahr bei hunderten Usern und diversen aktuellen Browsern einwandfrei.
Ein neuer User (bzw. User eines Unternehmens) hat jetzt genau damit Probleme, soweit konnten wir es eingrenzen. Er ist mit IE6 unterwegs und hat sämtliche Browser- und Sicherheitseinstellungen 1:1 von uns übernommen, inklusive "Meta Refresh zulassen". Trotzdem "funktioniert es nicht", d.h. er bekommt statt einer neuen Seite einen leeren Screen angezeigt. Nehmen wir das refresh raus, läuft es. Es widerstrebt mir allerdings, für einen einzelnen User eine ansonsten laufende Funktionalität komplett rauszunehmen (was bei anderen Usern wieder zu Verwirrung führen kann)
Frage: kann irgendwo auf der Firewall, im Proxy oder wo auch immer noch irgendeine Einstellung den refresh ausbremsen? Wo können wir noch suchen? So langsam gehen uns nämlich die Ideen aus.
Gruß aus Köln-Ehrenfeld,
Elya
hi,
Das sieht so aus:
header("Refresh: 1; URL=xyz");
header() ist dazu gedacht, HTTP-header auszulösen.
"Refresh: 1; URL=xyz" ist aber kein gültiger solcher.
Funktioniert seit etwa einem Jahr bei hunderten Usern und diversen aktuellen Browsern einwandfrei.
zufall.
warum nicht korrekt mit
header("Location: http://...");
?
gruß,
wahsaga
Hallo wahsaga,
"Refresh: 1; URL=xyz" ist aber kein gültiger solcher.
seh ich auch grade, ups (http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung, wobei die Beschreibung dort schon recht tolerant formuliert ist)
warum nicht korrekt mit
header("Location: http://...");
weil die history ganz unfein gekappt werden soll, damit die Anwendungsinternen vor- und zurück-Buttons mit Wertübergabe und Speichern benutzt werden (würde ich natürlich auf "normalen" Seiten nie nicht machen ;-))
Gruß aus Köln-Ehrenfeld,
Elya
Hallo Elya!
[...]
Das sieht so aus:
header("Refresh: 1; URL=xyz");
Ist kein echter HTTP-Header. Also besser im <head>-Bereich:
echo "<meta http-equiv="refresh" content="1; URL=xyz">";
Grüsse,
Sky