Ik krijg alleen maar een header error

error, headers already sent by *document* on line *lijn*

Dit heeft te maken met de volgorde van je document. Een header is een soort commando dat je aan je pagina meegeeft om niet iets te parsen (op het scherm te tonen) maar te executen (uitvoeren). Bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
    header('location:index.php');
?>


Als dit bovenaan je pagina staat, zal je direct verwezen worden naar index.php. Erg simpel. Waar de meeste header errors vandaan komen is bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<body>
<?
    if ($_POST['submit'] == 'verzend formulier')
    {

        header('location:verzonden.php');
    }
else {
        echo 'ga terug, formulier is niet verzonden';
    }

?>

</body>
</html>


Dit bovenstaande gaat een leuke headererror geven. Waarom? Omdat er al output (er is al iets geschreven) is , voordat de header komt. Dit is op te lossen door EERST je checks en phpcode te doen bovenaan je pagina. En pas als er output moet komen, dat ook neerzetten. Het is tenslotte zinloos om htmltags te schrijven terwijl je toch je pagina direct laat verwijzen naar een andere pagina.

Hetzelfde geldt voor session_start();

Dit zet je ALTIJD bovenaan je pagina. Maakt niet uit wat erna komt, ALTIJD!

Alle header-errors zijn op te lossen door je PHP pagina correct in te delen qua volgorde. Er zijn andere vieze gore oplossingen voor, maar die mogen van mij verbannen worden naar een cel met paris hilton.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Mijn script geeft alleen maar rare errors
  3. Ik krijg alleen maar een header error
  4. Ik krijg een aantal SQL errors in mijn paginas
  5. Ik krijg helemaal niets te zien
  6. Ik krijg niets te zien en mijn code is enorm lang
  7. Samenvatting!

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.