Auge: Problem mit header()

Beitrag lesen

Hallo

In Zeile 32 steht genau das:

Header("Location: ".$_POST['Redirect']);

In Zeile neun steht nur das:
<?php

Und _davor_ steht was?

Vor header hat _jegliche_ Ausgabe zu unterbleiben (oder muss abgefangen werden).
Alles ausserhalb des <?php ... ?>-Bereiches zählt als Ausgabe, und auch Leerzeichen/-Zeilen etc. sind Ausgabe.

OKAY.. Davor steht das:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
...

Was war an snafus Anmerkung "Sorge dafür, dass der PHP Code als erstes verarbeitet wird und erst dann die Ausgabe erfolgt" sowie an wahsagas oben zitierten Sätzen "Vor header hat _jegliche_ Ausgabe zu unterbleiben (oder muss abgefangen werden)." und "Alles ausserhalb des <?php ... ?>-Bereiches zählt als Ausgabe, und auch Leerzeichen/-Zeilen etc. sind Ausgabe." so unverständlich?

Sobald auch nur _ein_ zur Darstellung im Browser vorgesehenes Zeichen an jenen gesandt wurde, ist der Zug für header() abgefahren (Ausnahme ist die Pufferung des Outputs mit ob_start() und ob_end_flush()).

Wenn du vor jeglicher Ausgabe von für den Browser vorgesehenen Zeichen deine Prüfung mit eventuell vorgesehener Umleitung vornimmst und erst danach den HTML-Teil ausgibst, erledigt sich das Problem.

Beispiel:

<?php  
if (isset($_POST["bla"]))  
   {  
   $blubb = "irgendwas";  
   }  
else  
   {  
   header("http://www.example.com/trallalla.php");  
   }  
?>
<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
<title>Kommentar senden</title>  
</head>  
<body>  
<!-- ... -->

Tschö, Auge

--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
<dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
Veranstaltungsdatenbank Vdb 0.1