Warning: Cannot modify header information - headers already sent by
Ik krijg een php error. De error is als volgt.
Warning: Cannot modify header information - headers already sent by(output started at /home/grtechni/domains/britdiensten.nl/public_html/instructie/config.php:18) in /home/grtechni/domains/britdiensten.nl/public_html/instructie/safe.php on line 26
Wie o Wie kan me hiermee helpen?
Met vriendelijke groet,
Branco Rensen
BR-ITDiensten
Een paar regels code zou handig zijn rond lijn 26.
Ga eens naar de homepage (http://phphulp.nl/ ) en zoek voor de grap eens op die pagina naar "headers already sent"... Veel makkelijker kunnen we het niet maken om het antwoord voor je beschikbaar te maken, je hebt niet eens google nodig!
Kom je er niet uit, laat dan het stukje zien waarin de fout zich optreed.
Gewijzigd op 07/01/2014 14:19:34 door Michael -
Bij jou gaat het dus fout in config.php . config.php stuurt karakters naar de gebruiker.
Waarschijnlijk ligt dit aan spaties of nieuwe lijnen, net na de ?> .
Dat mag niet.
Er mag geen enkel teken komen voor <?php
Er mag geen enkel teken komen na ?>
De simpelste oplossing voor jou, is ?> gewoon weglaten, in config.php
'Je mag nooit "eerst karakters echo'es" en daarna nog een header() aanroepen.'
vergelijk regel 5 en 6 eens. welke komt eerst en welke geeft output?
@jeroen VD Eeerst de echo moet worden weergeven en daarna moet de bezoeker worden doorgestuurd
ja dan moet je wat anders verzinnen om die echo op een later tijdstip te laten echoen
Branco Rensen op 07/01/2014 14:54:37:
@jeroen VD Eeerst de echo moet worden weergeven en daarna moet de bezoeker worden doorgestuurd
Nee.
Dat mag niet.
Dat is niet waarvoor je haeder kan en mag gebruiken.
-----
Trouwens, hoe stel je je dat zelf voor?
Hoe lang dacht je dat die boodschap in beeld zou komen?
@kris peeters Heel even maar alleen om een melding te weergeven dat de Cookies incorrect zijn.
2 milliseconden?
- De gebruiker doet een verzoek. Door een URL in te tikken of op een link te klikken.
- php genereert een HTML pagina. Dit duurt een aantal miljoenste van een seconde. Dan wordt die gegenereerde pagina in 1 ruk naar de gebruiker gestuurd.
- Op dat moment staat de HTML-pagina op de computer van de gebruiker. PHP heeft dan niets meer te zeggen; kan niets meer doen.
Je kan niet verwachten dat php halve pagina's naar de gebruiker stuurt; daarna de pagina terug ververst.
Je kan geen tussentijdse boodschappen sturen.
Je genereert alles in 1 ruk en stuurt het naar de gebruiker.
Dus: als je van plan bent om header te gebruiken, stuur je geen echo's. En vice versa
Quote:
echo "<br /><br />You will be redirected to the application...";
echo "<script>setTimeout(\"location.href = 'index.php';\",5000);</script>";
echo "<script>setTimeout(\"location.href = 'index.php';\",5000);</script>";
En tevens is het ook niet nodig om een oud topic omhoog te halen. Dit topic sluit ik bij deze.