Ik heb net een eigen domeinnaam gekocht, nadat ik jaren alles gratis deed maar nu krijg ik deze foutmelden 4 keer op elke pagina waar mensen heen kunnen nadat ze ingelogd zijn:

Warning: Cannot modify header information - headers already sent by (output started at /mnt/web5/53/33/52191233/htdocs/llogin.php:12) in /mnt/web5/53/33/52191233/htdocs/llogin.php on line 108

Weet iemand waarom dit is, en wat ik eraan kan doen?
Ik had precies hetzelfde bestand op mijn vorige, gratis, host en daar deed alles het perfect.

Hmm, misschien dat er op je oude server automatisch ob_start() aan stond.

Voor de duidelijkheid:

header() moet worden aangeroepen VOOR er output wordt verzonden (Dus dat je text / html echo'ed)

Zelfs een spatie voor je openings tag '[ignore]<?[/ignore]' kan deze error al veroorzaken.
Kan je me even een voorbeelde geven?

met dus een <html>tag en header()... en alles wat er nog bij hoort.
<?
    # hier je headers
    header();

?><html>
<body>
blablabal

etc...
Ohw, maar ik had gewoon een normale html pagina en daarin zegmaar ergens de php code.

maar hoe moet ik nu bij #hier je headers goed mn headers neerzetten?


header()hierdeheader;
of
header(hierdeheader);

of... kan je daar ook even een voorbeeldje van neerzetten?

[EDIT]
En hoe ik die later op de pagina dan kan oproepen...
Wat staat er op regel nummer 108?

Wat daar staat zal daar wel niet op z'n plaats zijn.

Er zal waarschijnlijk iets staan als:
<?
header("location: url_naar_pagina");
?>

Dat kan dus niet..

Kijk hier eens naar
http://www.phphulp.nl/php/faq/#2
jah, dat staat er jah.

Hij chekt of er een cookie is, en als dat niet zo is staat er
header("Location: llogin.php");

[edit]
Maar.. je kunt nu wel wat schrijven, maar ik ga slapen want ik moet morgen ook werken..

Ik spreek je waarschijnlijk nog wel een keer, en anders bedankt voor de hulp!
dan zou je dit krijgen:

<?php
if($_COOKIE['authed']=='Waarde die er in hoort'){
header("Location: llogin.php");
}
?>

je moet alleen zorgen dat er nog geen text is verzonden naar de browser,
dingen die tussen [ignore]<?php ?>[/ignore] staan, worden niet naar de browser verzonden, tenzij er een echo / print / welke output methode in staat.

Een vuile oplossing (maar soms verdraait handig) is het gebruik maken van ob_start() bovenin, en echo ob_end_flush() aan het eind.
Dan kan je die header() etc wel gebruiken.
Maar wat Eddy zegt is niet echt een goede oplossing. Je 'plakt' de errors eigen 'af'.
Oke, bedankt allemaal! Ik heb gewoon de gehele PHP code voor de inhoud van de site geplakt... behalve het inlog form dan! En nu werkt het!

Reageren