Christian Seiler: weiterleitung funktioniert nicht

Beitrag lesen

Hallo Patrick,

die("<SCRIPT LANGUAGE="JAVASCRIPT">alert('Du musst dich erst einloggen!')</SCRIPT>");
header("Location: index.php");

die(...) bewirkt, dass der Text, den Du der Funktion übergibst, ausgegeben wird und dann das Programm *sofort* beendet wird. Zum Location-Header kommt er gar nicht. Der Location-Header ist desweiteren nicht korrekt geformt, es _muss_ immer eine Absolute URL drin stehen, bei Dir steht nur index.php. Außerdem _kannst_ Du _vor_ dem Header _keinen_ Inhalt ausgeben, das geht einfach nicht. Zuerst kommt immer der Header, danach der Inhalt. Du kannst auf diese Weise keine Meldung ausgeben.

Also:

Entweder, Du leitest einfach so weiter:

$dir = dirname ($_SERVER['PHP_SELF']);
if ($dir{strlen($dir)-1} != '/') {
  $dir .= '/';
}
header ('Location: http://'.$_SERVER['HTTP_HOST'].$dir.'index.php');

Oder Du gibst einfach eine Fehlermeldungsseite mit einem Link aus:

echo 'Fehler - erst einloggen....';
echo '<a href="index.php">Zur Startseite</a>';
exit;

Beides zusammen geht nicht.

Viele Grüße,
Christian

--
Ich bin ein Bandbreitenverschwender. Meine Signatur tut mir leid. Ehrlich!