mmofacts.com

Mysterium Header-Refresh ...

gepostet vor 19 Jahre, 11 Monate von neit
Eine Sache mit der ich mich schon länger beschäftige ist der header('Refresh: ...'); in PHP. Ich benutze ihn hier seitenweit und habe das Problem das er manchmal einfach nicht funktioniert.

Beispiel: header('Refresh:3;URL=index.php?page=games');

Obiges Beispiel funktioniert nun auf manchen Seiten und auf anderen wiederum nicht. Weil dieses Methode nicht die offizielle feine Art ist habe ich es auch mit einem Header-Refresh via Meta-Tag ausprobiert, der versagt aber in den gleichen fällen.

Ein header('Location: ...); würde zwar funktionieren, ist aber aus anderen Gründen nicht möglich.

Weil manchmal weder der Weg über PHP noch über Meta-Tags funktioniert habe ich die Annahme das es irgendwas am HTML-Code sein muß, hat irgendjemand diesbezüglich eine Ahnung oder schonmal eine ähnliche Erfahrung gemacht?
gepostet vor 19 Jahre, 11 Monate von Mudder
Also die Weiterleitung mit header("refresh..) hab ich so auch noch nie gesehen..

Doch was eigentlich immer Funktioniert ist die gute alte HTML-Variante.


Probiers doch einfach mal auf dem alten Weg
gepostet vor 19 Jahre, 11 Monate von neit
Original von neit
Weil dieses Methode nicht die offizielle feine Art ist habe ich es auch mit einem Header-Refresh via Meta-Tag ausprobiert, der versagt aber in den gleichen fällen.


Augen auf Mudder.
gepostet vor 19 Jahre, 11 Monate von weltenraum
Ein andere Variante wäre via Javascript mit document.location.href="seite.php";

z.B.



oder über einen Timer bzw. Countdown dann den Befehl ausführen.
gepostet vor 19 Jahre, 11 Monate von schokofreak
mit javascript; location.replace
hat man sogar erreicht, dass die History 100 % überschrieben wird.
-> funzt auf Opera, IE, Mozilla...

Immer vorausgesetzt, man will erreichen dass die History geleert wird.

Gruss
gepostet vor 19 Jahre, 11 Monate von HSINC
neit gib mal nen beispiel wo es nicht klappt, das man sich das mal in action anguggen kann

javascript reloc halte ich für nicht gut da es immer mal wieder welche deaktiviert haben

ansonsten ist es mir noch nie untergekommen das nicht klappte

--
eventuell den postern eine unid zuweisen pro post, das die nicht doppelt eingetragen werden (arbeit schaff *g*) und dann mit header:location
gepostet vor 19 Jahre, 11 Monate von Mot
ewtl. browsertyp abhängig



klappt jedenfalls mit IE6.0 und firefox
gepostet vor 19 Jahre, 11 Monate von schokofreak
HSync:
JavaScript schreibt HTML Kommentar direkt ins HTML Rein
 



document.write("blub");




Damit kann man bewirken, dass bei aktiviertem JavaScript der JavaScript reload benutzt wird.
-> Bei deaktiviertem z.B. ein Meta Reload

JavaScript reload funzt so, dass ein location.replace durchgeführt wird.
kurz davor noch n window.settimeout von n bisschen Zeit. darüber wird überprüft ob das replace funzt; ansonsten machen wir ein location.href=""...

Fazit:
Wir haben ein System, welches bei deaktiviertem JavaScript auf Meta Reload zurückgreift
Wir haben ein System welches bei einem Versagen eins location.replace das erkennt und versucht das Problem mit einem location.href zu beheben.

Die Chance das sowas abverreckt ist recht klein.

Nachtrag zum schluss: Sowas rentiert NUR in einem Browsergame... fangt ja ned an, normale Pages so zu coden

Gruss
gepostet vor 19 Jahre, 11 Monate von neit
Also das einzige Beispiel was mir im Moment auf der aktuellen Seite einfällt ist das News posten (bitte spammt jetzt nicht alle unseren Newseingang zu ..*G*). Die Frage kam auf weil ich in meiner Entwicklungsversion jetzt mehrere Fälle dieser Art habe. Passiert soweit ich das sehe nur bei den komplexeren Seiten, News, Spieleverzeichnis .... kann es evtl etwas mit dem WYSIWYG-Editor in JavaScript zu tun haben?
gepostet vor 19 Jahre, 11 Monate von Mudder
Ne kann eigentlich nicht..
Aber was spricht denn gegen die HTML-Variante mit dem -Tag und wie überall schreibt man dann den Link hin: "Falls Sie nicht weitergeleitet werden klicken Sie hier.. "
gepostet vor 19 Jahre, 11 Monate von neit
Es spricht garnichts gegen die Variante mit dem Meta-Tag aber ich habe hier schon 2x gesagt das die komischerweise in den Fällen wo der php-basierte Refresh versagt eben auch NICHT funktioniert. Deswegen kam ich ja auf die Idee das irgendwas am Code sein muß.

Den 'klicken Sie hier' Link habe ich schon eingebaut aber das ist auf Dauer dann doch etwas nervig ....
gepostet vor 19 Jahre, 11 Monate von HSINC
naja header:refresh ist kein standard header und steht auch nicht in der rfc drinne. somit müssen ihn nicht alle browser akzeptieren.
beim ie soll es zudem auch eine option "Meta Refresh zulassen" geben wenn man die ausschaltet refresht das ding gar nicht.
gepostet vor 19 Jahre, 11 Monate von Mudder
Genau du solltest dich vielleicht mal nach nem anständigen Browser umschauen oder aber mal die Einstellungen überprüfen ob dein Browser das evtl. abblockt.
gepostet vor 19 Jahre, 11 Monate von neit
Hmm ich hab mal meinen anständigen Browser beiseite gelegt und es im IE versucht, Ergebnis: es funktioniert.

Jetzt muß ich nurnoch herausfinden warum Firefox in manchen Fällen auch den Refresh über Meta-Tags verweigert.
gepostet vor 19 Jahre, 11 Monate von knalli
Also mir war das völlig neu und fremd, dass das (Eingangspost) überhaupt funktioniert.

Soweit möglich würde ich eine interne Funktion vorziehen.. wenn header noch nicht geladen, dann ein (header"Location $url"), ansonsten ein JS-Konstrukt mit verlinkter URL (falls JS aus ist).

Alles andere hört sich für mich eher nach einem HiddenFeature an

Auf diese Diskussion antworten