Warning: Cannot modify header information - headers already sent by (output started at

Deze foutmelding krijg ik. Waarom? Google verteld mij dat ik geen php ervoor mag uitvoeren. Andere sites zeggen dat ik helemaal niks mag uitvoeren. Zelf heb ik op localhost iets waar ik gewoon eerst output heb en dan header('Location: index.php'); heb waar die het gewoon doet. Ligt dit aan de versie van PHP ofzo?
In PHP moet je de headers verzenden VOOR iedere vorm van output, dus vóór je eerste echo maar ook mag er geen uitvoer zijn voor je <?php ?> statement. eerst een spatie of een lege regel of what ever zal je een foutmelding veroorzaken.
Als ik het goed heb, mag je header () niet gebruiken nadat je iets verstuurd hebt naar de browser.

dit houd dus in dat als jij eerst ergens HTML output, en vervolgens header ("Location: page.php") gebruikt, dat niet werkt.

De naam van de functie zegt het ook al. Je voegt headers toe, je kan niet de headers nog veranderen nadat je de body al gestuurd hebt.

Goeie tip trouwens, volgende keer je code er ook bij zetten. Je vraag een vraag van wat er fout gaat zonder dat wij kunnen zien wat je doet.
<?php

echo "<h1>My page</h1>";
header("Location: page.php"); // dit gaat niet lukken, er is al output geweest

?>

<?php

header("Location: page.php"); // dit lukt wel
echo "<h1>My page</h1>";

?>
Oke, hoe verklaar ik dan dat in een testje van mij in mijn localhost het wel gewoon werkt nadat ik html als output heb gehad?


<html>
<head>
</head>

<body>
<?php

echo 'awdawwd';

if (isset($_GET['blah'])){
header('Location: index.php?bluhawd');
exit();
}

?>
</body>
</html>

Dit werkt wel gewoon in mijn localhost.
Als dit wel werkt in mijn localhost, waarom zeg je dan dat zoiets nooit werkt? Je kraamt eigenlijk gewoon dikke onzin uit want schijnbaar lukt het mij wel.
Albert de Wit op 12/10/2012 17:27:37

Als dit wel werkt in mijn localhost, waarom zeg je dan dat zoiets nooit werkt? Je kraamt eigenlijk gewoon dikke onzin uit want schijnbaar lukt het mij wel.

Albert, in dat geval wens ik je veel succes. Bij deze help ik je ook niet meer.
Wat je deed was een poging om te helpen. Je had het alleen fout. Iemand anders die dit mysterie kan oplossen? Er heeft al 1 iemand opgegeven....
Dat zou niet werken, en alsnog de 'headers already sent' melding tonen.

Zo niet, dan staat/staan je error_reporting, en/of display_errors-setting(s) niet goed.
grappig genoeg word ik dan wel doorgestuurd naar index.php?bluhawd
Dan is je probleem opgelost?
dan heb je ergens output_buffering aanstaan.

Reageren