Sven Rautenberg: Lynx (eigentlich auch Barrierefreiheit)

Beitrag lesen

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:|