dadda
Goto Top

Weiterleitung funktioniert nicht mehr

hi,

ich hoffe mir kann jemand weiterhelfen. Ich möchte eine weiterleitung per meta-refresh machen:

echo "<meta http-equiv="refresh(debug)" content="0; URL=/admin/index.php?page=test">  
(das debug bei refresh nicht beachten)

das hatte auch schon funktoniert! Jetzt geht es nur noch mit IE mit Mozilla bleibt er einfach stehen, es passiert gar nichts! habe die Anweisung nicht im head-Bereich, aber das kann es doch auch nicht sein, da es schon funktioniert hat!?
lieg das vielleicht an Mozilla? Oder kann es daran liege das ich mehrere JavaScript funktionen benutze? Ist mir total unverständlich!

bitte helft mir!

Content-Key: 10613

Url: https://administrator.de/contentid/10613

Printed on: April 23, 2024 at 06:04 o'clock

Mitglied: 11078
11078 May 12, 2005 at 14:26:06 (UTC)
Goto Top
Hallo,

warum schickst Du nicht einfach einen neuen HTTP-Header?


< ?php
header("Location: http://meine.neue-sei.te;);
?>


Das als einziges in eine PHP-Datei.


TIM
Member: dadda
dadda May 12, 2005 at 15:06:56 (UTC)
Goto Top
danke für den tip, aber das geht auch nicht, da ich vorher noch Ausgaben habe, und auch noch paraneter mitübergeben muss!
Mitglied: 11078
11078 May 12, 2005 at 15:56:48 (UTC)
Goto Top
Hallo,

danke für den tip, aber das geht auch
nicht, da ich vorher noch Ausgaben habe, und
auch noch paraneter mitübergeben muss!


Parameter kannst Du so auch mitübergeben:

< ?php
header("Location: http//www.meine-sei.te/index.php"."?param1=".$param1);
?>


Aber vorherige Ausgaben geht so nicht recht, das stimmt.


Leider hat der Parser dieses Boards Deinen Beispielcode verschluckt. poste Ihn doch nochmal und ersetze die Spitzen Klammern durch etwas anderes oder lass ein Leerzeichen zwischen der einleitenden Spitzen Klammer und dem Fragezeichen.


TIM
Mitglied: 10545
10545 May 13, 2005 at 07:16:00 (UTC)
Goto Top
Moin,

möglicherweise könnte Dir dieser "Quick & Dirty" helfen?:

< ?php

Echo " Was auch immer an Ausgabe kommt...";

$timeout=1;
$gotopage="http//www.meine-sei.te/index.php"."?param1=";

echo "\n< script language=\"javascript\" >\n";

if ($timeout==0) {
echo "window.location=\"$gotopage\"+\"$param1\";";
} else {
echo "myvar = \"\"; timeout = ".($timeout*10).";
function dorefresh() {
window.status=\"Redirecting\"+myvar; myvar = myvar + \" .\";
timerID = setTimeout(\"dorefresh();\", 100);
if (timeout > 0) { timeout -= 1; }
else { clearTimeout(timerID); window.status=\"\";
window.location=\"$gotopage\"+\"$param1\"; }
}
dorefresh();";
}
echo "\n< /script >\n";
Exit;
? >

Gruß, Rene

PS: Nimm die Leerstellen nach den eckigen Klammern wieder raus! face-wink
Member: dadda
dadda May 13, 2005 at 07:37:56 (UTC)
Goto Top
Also das ist mein Aufruf müsste ja schon so richtig sein!
Das merkwürdige ist ja, das ich das 1. mal wenn ich Mozilla öffne und ein refresh machen möchte nichts passiert, beim 2. Fenster klappt es dann ein mal und dann wieder nicht! Ist sowas noch niemandem passiert? Das muss doch irgendein Software-fehler von Mozilla sein, oder?
Habe jetzt schon an mehreren Stellen ein refresh-Aufruf und bisher ging es auch, kann doch nicht sein das ich jetzt alles ändern muss face-sad
Mitglied: 10545
10545 May 13, 2005 at 07:50:18 (UTC)
Goto Top
Moin,

ist der Blank zwischen "index.php? page=test":

ein Copy & Paste-Fehler, oder steht es wirklich so im Code? Dann ist mir der Fehler klar ...face-wink

Gruß, Rene
Member: dadda
dadda May 13, 2005 at 08:09:21 (UTC)
Goto Top
ne war nur copy & paste fehler, wär ja schön wenn es so einfach wäre den fehler zu beseitigen...
Member: kubikus
kubikus Jun 03, 2005 at 10:38:27 (UTC)
Goto Top
das hatte auch schon funktoniert! Jetzt geht
es nur noch mit IE mit Mozilla bleibt er
einfach stehen, es passiert gar nichts! habe
die Anweisung nicht im head-Bereich, aber das
kann es doch auch nicht sein, da es schon
funktioniert hat!?
lieg das vielleicht an Mozilla? Oder kann es
daran liege das ich mehrere JavaScript
funktionen benutze? Ist mir total
unverständlich!

Dass die Meta-Refresh-Weiterleitung (im <BODY>) nur im IE funktioniert, liegt wohl daran, dass der IE sehr "Fehlertolerant" ist. So akzeptiert er z.B. auch "\" anstatt eines "/" in URL's, während mozilla dann streikt. Mit dem Meta-Tag im <HEAD> (Wo er ja auch hingehört) sollte es keine Problem geben.

Von einer weiterleitung mit Java würde ich prinzipiell abraten, da diese nur funktioniert, wenn der Surfer Java auch aktiviert hat. Da dein Programm aber sowieso Java nutzt... ;)


MfG
Member: markus-so
markus-so Jun 12, 2005 at 16:13:17 (UTC)
Goto Top
Du kannst es mit

*?php
header("LOCATION: www.dieweiterleitung.de");
?>

machen, obwohl vorher eine Ausgabe stattfindet, indem du ganz an den Anfang der Seite

*?php
ob_start();
?>

schreibst und dann hinter den neuen Header ob_end_flush() schreibst.

Also:

*?php
ob_start();

//evtl. noch anderes php-gescripte...
?>
Sonstige ausgaben...
*?php
//und jetzt der Header
header("LOCATION: www.dieneseite.de");  
ob_end_flush();
?>

Weitere Informationen unter http://de.php.net/manual/de/function.header.php


Gruss Markus

//edit: Ist das vielleicht moeglich, dein Anfangspost zu editieren und diese Meta-Angabe raus zu nehmen? Ich werde, wenn ich in diesen Thread gehe andauernd weitergeleitet face-wink