Moin!
Hier folgt die ultimative Weiterleitung mit allen Browsern unter allen Umständen -Lösung:
Die will ich natürlich noch kommentieren:
<?php
function ganz_sichere_Loesung($servername,$serverdir,$zieldatei)
{
$mylocation=$servername.$serverdir.$zieldatei;
Warum hier nicht für diverse Informationen auf $_SERVER zurückgreifen? Die PHP-Doku selbst schlägt diese Vorgehensweise vor, um relative URLs zu verwenden:
header("Location: http://".$_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])
."/".$relative_url);
header("Location: $mylocation");
Wenn du header verwendest, kriegst du unter Umständen bei bereits gesendeten Headern einen PHP-Fehler. Prüfe mit der Funktion headers_sent() vorher, ob du noch header() verwenden darfst.
Alternativ (wenn Header schon weg sind), kannst du versuchen, mit deiner HTML-Lösung was zu retten. Bedenke aber, dass <meta> nur in den <head> darf, und Javascript nicht überall funktioniert.
echo "<html>\n";
echo " <head>\n";
echo " <meta http-equiv="refresh" content="0; URL=$mylocation">\n";
echo " </head>\n";
echo " <script type="text/javascript">";
echo " this.location.href="$mylocation";";
echo " </script>";
echo " <head>\n";
echo " <body>\n";
echo " <h1>Automatische Weiterleitung</h1>\n";
echo " <p>Falls Ihr Browser die automatische Weiterleitung nicht unterstützt, verwenden Sie bitte den folgenden Link:</p>\n";
echo " <p><a href="$mylocation">Weiter zu: $mylocation</a></p>\n";
echo " </body>\n";
echo "</html>\n";
die();
Warum hier mit die() beenden? Warum nicht exit?
}
- Sven Rautenberg
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|