header already sent
Code (php)
1
2
3
2
3
Warning: Cannot modify header information - headers already sent by (output started at /nfs/home/deb5352/domains/vanmook.net/public_html/demon/includes/header.php:63) in /nfs/home/deb5352/domains/vanmook.net/public_html/demon/includes/common.php on line 78
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /nfs/home/deb5352/domains/vanmook.net/public_html/demon/includes/header.php:63) in /nfs/home/deb5352/domains/vanmook.net/public_html/demon/includes/common.php on line 86
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /nfs/home/deb5352/domains/vanmook.net/public_html/demon/includes/header.php:63) in /nfs/home/deb5352/domains/vanmook.net/public_html/demon/includes/common.php on line 86
Ik heb geprobeerd om alle spaties in header.php te verwijderen, maar dat hielp niets. De code van header.php naar notepad++ gekopieerd en vanuit daar op geslagen als header.php evenmin. Als ik regel 63 uit header.php verwijderen geeft de melding regel 62 ipv 63.
http://www.vanmook.net/demon
De pagina's zijn nog in aanbouw, dus het menu is niet helemaal klaar.
Weet iemand raad?
de header() functie MOET je aanroepen vóór er ook maar een enkele output optreedt.
in jouw header.php op regel 63 wordt begonnen met het spugen van output en daarna wil je nog de header() functie aanroepen hetgeen dus niet meer kan.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<html>
<head>
<title>DeMon SNB</title>
<link rel="stylesheet" type="text/css" href="http://www.vanmook.net/demon/stylesheets/DrieKolom.css">
<script type="text/javascript" src="http://www.vanmook.net/demon/javascript/menu.js"></script>
</head>
<body>
<div id="body">
<div id="header">
<h1>Welkom bij DeMon SNB</h1>
</div>
<div id="menu">
<ul id="sddm">
<li><a href="http://www.vanmook.net/demon/index.php"
onmouseover="mopen('m1')"
onmouseout="mclosetime()">Home</a>
</li>
<li><a href="#"
onmouseover="mopen('m2')"
onmouseout="mclosetime()">Invoeren...</a>
<div id="m2"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Alle FN-nummers</a>
<a href="#">Alle WO-nummers</a>
</div>
</li>
<li><a href="#"
onmouseover="mopen('m3')"
onmouseout="mclosetime()">Influenttank</a>
<div id="m3"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Alle FN-nummers</a>
<a href="#">Alle WO-nummers</a>
</div>
</li>
<li><a href="#"
onmouseover="mopen('m4')"
onmouseout="mclosetime()">Reactor 1</a>
<div id="m4"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Alle FN-nummers</a>
<a href="#">Alle WO-nummers</a>
</div>
</li>
<li><a href="#"
onmouseover="mopen('m5')"
onmouseout="mclosetime()">Reactor 2</a>
<div id="m5"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Alle FN-nummers</a>
<a href="#">Alle WO-nummers</a>
</div>
</li>
<li><a href="login/login.php">Login</a>
</li>
<li><a href="private.php">Help</a>
</li>
</ul>
</div>
<head>
<title>DeMon SNB</title>
<link rel="stylesheet" type="text/css" href="http://www.vanmook.net/demon/stylesheets/DrieKolom.css">
<script type="text/javascript" src="http://www.vanmook.net/demon/javascript/menu.js"></script>
</head>
<body>
<div id="body">
<div id="header">
<h1>Welkom bij DeMon SNB</h1>
</div>
<div id="menu">
<ul id="sddm">
<li><a href="http://www.vanmook.net/demon/index.php"
onmouseover="mopen('m1')"
onmouseout="mclosetime()">Home</a>
</li>
<li><a href="#"
onmouseover="mopen('m2')"
onmouseout="mclosetime()">Invoeren...</a>
<div id="m2"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Alle FN-nummers</a>
<a href="#">Alle WO-nummers</a>
</div>
</li>
<li><a href="#"
onmouseover="mopen('m3')"
onmouseout="mclosetime()">Influenttank</a>
<div id="m3"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Alle FN-nummers</a>
<a href="#">Alle WO-nummers</a>
</div>
</li>
<li><a href="#"
onmouseover="mopen('m4')"
onmouseout="mclosetime()">Reactor 1</a>
<div id="m4"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Alle FN-nummers</a>
<a href="#">Alle WO-nummers</a>
</div>
</li>
<li><a href="#"
onmouseover="mopen('m5')"
onmouseout="mclosetime()">Reactor 2</a>
<div id="m5"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Alle FN-nummers</a>
<a href="#">Alle WO-nummers</a>
</div>
</li>
<li><a href="login/login.php">Login</a>
</li>
<li><a href="private.php">Help</a>
</li>
</ul>
</div>
Dit is dus allemaal output.
...en dus?!?!
Daaronder kan dus geen header() of session_start() staan.
Regel 63 is de laatste regel van header.php. Daaronder staat niets, noppes, nada. Zit de fout dan in common.php, regel 78? Zit de fout ergens in login.php?
... common.php on line 78
okee waarschijnlijk staat er nog een leesteken buiten de ?>. Haal gewoon die ?> weg aan het einde van het script en je hebt er geen last meer van. Dus alleen openen en niet meer sluiten.
Rene van Mook op 09/11/2013 16:40:21:
Regel 63 is de laatste regel van header.php. Daaronder staat niets, noppes, nada.
Grapjas.... het gaat niet om wat eronder staat, het gaat erom wat erboven staat. En dat is dus een bak output die je niet mag hebben als je nog een header wilt versturen. Een header KAN NIET VERSTUURD WORDEN NA OUTPUT! Als je dus al HTML naar de browser stuurt kan je GEEN headers meer versturen.
Gewijzigd op 09/11/2013 17:52:09 door Erwin H
Rene, de fout zit em niet in je code, het zit in de logica. Headers worden verstuurd welke informatie geven over output. Als jij output stuurt, heeft het geen zin meer om daarna nog headers te sturen. De logische fout zit em er dus in dat jij al output stuurt en vervolgens nog ergens headers stuurt. Headers kunnen van alles zijn, scripts die nog niet ingeladen zijn of HTML headers voor je document, sessions of andere vage headers voor afbeeldingen etc.
Wat je moet onthouden is dit; voer eerst alle logische code uit en pas wanneer dit klaar is, ga je je html echoen. Als jij ergens een session nodig hebt (door bijvoorbeeld het gebruik van session_start()) doe je dit voordat je iets aan html terug stuurt naar de browser.
Wat een andere mogelijkheid is ( en niet echt aan te raden is) is het gebruik van output buffers. Dit zijn (soms best handige) buffers die alles opvangen ( al je echos, print(), print_r() etc) en pas wanneer je helemaal klaar bent met alles, echo je gewoon de outputbuffer.
Pieter Jansen op 09/11/2013 23:40:17:
Dat is niet helemaal waar Erwin, maar dat is een saillant detail;
Wat is er niet helemaal waar dan?
Ik had de "includes" bovenaan de code staan. Toen ik die omlaag verplaatste was het probleem opgelost.
thnx...