ALLGEMEINE PROBLEME:
(kopiert aus: source )
\====================
1) sollte es keine Ausgabe geben (d.h. echo..
oder HTML-Codes), bevor die header(.......);
Befehl.
2) entfernen Sie alle Weißraum (oder Zeilenumbruch ) vor <?php
und nach ?>
Tags.
3) GOLDENE REGEL! - prüfen Sie, ob diese php-Datei (und auch, wenn Sie include
andere Dateien) haben UTF8 ohne BOM Kodierung (und nicht nur UTF-8 ). Das ist in vielen Fällen ein Problem (weil UTF8 kodierte Datei hat ein spezielles Zeichen am Anfang der php-Datei, das Ihr Texteditor nicht anzeigt)!!!!!!!!!!!
4) Nach header(...);
müssen Sie exit;
5) Verwenden Sie immer 301- oder 302-Verweise:
header("location: http://example.com", true, 301 ); exit;
6) Schalten Sie die Fehlerberichterstattung ein, und suchen Sie den Fehler. Ihr Fehler kann durch eine Funktion verursacht werden, die nicht funktioniert. Wenn Sie die Fehlerberichterstattung einschalten, sollten Sie immer zuerst den obersten Fehler beheben. Er könnte zum Beispiel lauten: "Warning: date_default_timezone_get(): Es ist nicht sicher, sich auf die Zeitzoneneinstellungen des Systems zu verlassen". - weiter unten wird dann möglicherweise der Fehler "Header nicht gesendet" angezeigt. Nachdem Sie den obersten (1.) Fehler behoben haben, laden Sie Ihre Seite erneut. Wenn Sie immer noch Fehler haben, beheben Sie erneut den obersten Fehler.
7) Wenn nichts von dem oben genannten hilft, verwenden Sie JAVSCRIPT Umleitung (jedoch stark nicht empfohlene Methode), kann die letzte Chance in benutzerdefinierten Fällen sein...:
echo "<script type='text/javascript'>window.top.location='http://website.com/';</script>"; exit;