PHP Weiterleitung - Frage?

  • Themenstarter Themenstarter noctaru
  • Beginndatum Beginndatum
N

noctaru

Auf sogut wie allen Seiten zu dem Thema, PHP Weiterleitung, auf denen der unten genannte Script gezeigt wird, ist zu lessen, dass vor den Script nichts stehen darf. Weder HTML, noch PHP.

PHP:
<?php
header('Location: seite.de''); exit();
?>


Jedoch funktioniert er bei mir, auch wenn was davor steht. Woran liegt das?

PS:. Beim Schreiben ist mir gekommen, dass sich das warscheinlich auf Ausageben bezieht, also Texte die dann auf der Seite angezeigt werden. Ist das so richtig? Dann wurde ich nähmlich warscheinlich von dem "nichts in PHP" verwirrt, da das sich warscheinlich dann auf eine Ausgabe durch einen PHP Script bezog und nicht auf einen PHP Script an sich.
 
Richtig, vor header() und aehnlichen Funktionen (z.B. session_start()) darf nichts an den Browser ausgegeben werden da ansonsten der Header nicht mehr manipuliert werden kann.
Du kann aber zig tausend Zeilen PHP Code vor header() stehen haben, solang dieser halt nichts ausgibt.
 
Ist nur irgendwie an der Stelle irgendwie unsinnig, ne Ausgabe, vor der Umleitung zu machen, wenn er sowieso auf ne andere Seite weiterleitet!
 
Das laesst sich nur nicht immer so einfach vermeiden. Vor allem wenn alles ueber die index.php laeuft und nur alles includet() wird, bestenfalls auch noch mehrere Scripts. Wenn dann davon irgendein Script meint unter den gegebenen Bedingungen umleiten zu muessen macht es das halt. Und es ist doch sehr muehselig und vielleicht sogar etwas uebertrieben in allen Scripts alle Moeglichkeiten abzudecken wo ein anderes Script evtl. umleiten koennte und in dem Fall keinen Text auszugeben.
Wenn man nicht mit include() arbeitet ist das ganze noch einfacher und ueberschaubarer, aber wenn man mit include() arbeitet ist es einfach entweder mit dem allseits beliebten Output-Buffer zu arbeiten (auch wenn man sich dann die Moeglichkeit nimmt diesen fuer andere Spielereien zu nutzen) oder aber, so wie ich das mache, saemtlichen Output zuerst in eine Variable schreiben und diese dann am Ende der index.php ausgeben.
 
Zurück