Hi,
ich plane gerade ein neues Script in dem ich alle inhalte in eine zentrale index.php als module per require() einbinden möchte.
Ich möchte jedoch auch, das innerhalb der Module redirects via header("Location: xxx") stattfinden können.
Wenn nun in der index.php bereits eine Ausgabe stattgefunden hat, würde das nicht mehr gehen bzw. zu einem Fehler führen. Trotzdem funktioniert dieses testscript komischerweise:
Wieso??
natürlich könnte man das Problem durch Output buffering umgehen oder folgendes benutzen:
Trotzdem würde ich mich über eine Erklärung für obiges freuen...nur um die Unsicherheit zu beseitigen, das es vielleicht nur ein Zufall ist und so etwas normaleriwese zu Fehlern führen müsste.
Grüße, Florian
ich plane gerade ein neues Script in dem ich alle inhalte in eine zentrale index.php als module per require() einbinden möchte.
Ich möchte jedoch auch, das innerhalb der Module redirects via header("Location: xxx") stattfinden können.
Wenn nun in der index.php bereits eine Ausgabe stattgefunden hat, würde das nicht mehr gehen bzw. zu einem Fehler führen. Trotzdem funktioniert dieses testscript komischerweise:
PHP-Code:
<?php
error_reporting(E_ALL | E_NOTICE);
echo "test";
header("Location: test.php");
?>
Wieso??
natürlich könnte man das Problem durch Output buffering umgehen oder folgendes benutzen:
PHP-Code:
function Redirect($url) {
if(headers_sent()) {
echo "<script type='text/javascript'>location.href='$url';</script>";
} else {
header("Location: $url");
}
}
Grüße, Florian
Kommentar