2009-02-16 9 views
5
if (strlen($_POST['reply']) < 6) { 
header("Refresh: 2; url=thread.php?id=$tid#reply"); 
die("The text you have entered is too short. Please write a longer text and try again."); 
} 

Warum funktioniert die Header-Aktualisierung nicht, wenn ich #reply hinzufüge? Gibt eine leere Seite. Es funktioniert jedoch mit dem Header-Speicherort. Irgendeine Idee?Header Refresh

+0

Der Code funktioniert perfekt auf meinem Server/Browser setzen sollte. Sind Sie sicher, es ist nicht etwas anderes, das das Problem verursacht? – soulmerge

Antwort

6

alles nach dem Hashzeichen (#) ist ein lokaler Teil der URL und sollte nicht erzwungen werden. Wenn Sie die URL im Browser erneut eingeben und in der Adressleiste erneut die Eingabetaste drücken, wird die Seite nicht aktualisiert, sondern Sie gelangen einfach zum #Reply-Teil (Ziel) der Seite.

Beachten Sie auch, dass Sie Standards brechen, indem Sie die vollständige URL nicht verwenden. Sie sollten werden: url = http://server.com/thread.php?id= $ tid # antworten

PS: Ich würde empfehlen, mit Header("Location: xxxxxxxx"); Sie Refresh im META-Tag