Cannot send session cache limiter - headers already sent
Ik ben voor een van mijn klanten een website aan het maken. Het liep allemaal lekker totdat er een captcha in het formulier opgenomen moest worden. Ik ben op zoek gegaan naar iets waarvan ik (dacht dat ik) het begreep en heb dit in mijn website opgenomen. Alles op mijn eigen server (DDS) geplaatst en het werkte! Hoera! Maar vervolgens heb ik alles op de server van mijn klant geplaatst en komt er na het invullen van het formulier een foutmelding naar voren.
Het formulier op mijn server: http://www.ipo.dds.nl/wiebewerkt/info.php
Het formulier op de server van mijn klant: http://www.wiebewerkt.nl/info.php
Dit is de foutmelding:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/wiebewerkt/domains/wiebewerkt.nl/public_html/info.php:78) in /home/wiebewerkt/domains/wiebewerkt.nl/public_html/info.php on line 87
Wij kan mij vertellen wat ik fout doe? Ik heb me al suf gegoogled, maar ik kom er niet uit.
Gewijzigd op 28/11/2013 18:33:37 door - Ariën -
Dit is de code van de betreffende pagina:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?php<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>WiebeWerkt!</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body,td,th {
color: #CCC;
}
-->
</style>
<script type="text/javascript">
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
</head>
<body onload="MM_preloadImages('images/linked_ac.jpg')">
<div class="container">
<div class="header"></div>
<div class="menu">
<span class="nav"><table width="120" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="23"><a href="index.html" target="_self">Home</a></td>
</tr>
<tr>
<td height="23"><a href="wiebewerkt.html" target="_self">WiebeWerkt!</a></td>
</tr>
<tr>
<td height="23"><a href="aanpak.html" target="_self">Aanpak</a></td>
</tr>
<tr>
<td height="23"><a href="over.html" target="_self">Over Wiebe</a></td>
</tr>
<tr>
<td height="23"><p>Informatie</p></td>
</tr>
<tr>
<td height="23"><a href="referenties.html" target="_self">Referenties</a></td>
</tr>
<tr>
<td height="23"><a href="contact.html" target="_self">Contact</a></td>
</tr>
</table></span></div>
<span class="maintext">
<!-- Begin van het formulier -->
<?php
if (!isset($_POST['contactformulier'])) {
include ('inc_contact.php');
}
else {
session_start();
$naam = $_POST['naam'];
$adres = $_POST['adres']; // not required
$postcode = $_POST['postcode']; // not required
$plaats = $_POST['plaats']; // not required
$emailbezoeker = $_POST['emailbezoeker'];
$telefoon = $_POST['telefoon']; // not required
$gevonden = $_POST['gevonden']; // not required
$bericht = $_POST['bericht'];
//als er geen naam is ingevuld, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
if(empty ($naam)){
echo "<h3>Bericht niet ontvangen</h3><p>Je hebt geen naam ingevuld! Ga terug.</p>";
}
//als er geen e-mailadres is ingevuld, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
elseif (empty($emailbezoeker)) {
echo "<h3>Bericht niet ontvangen</h3><p>Je hebt geen e-mailadres ingevoerd! Ga terug.</p>";
}
//als het e-mailadres geen @-teken bevat, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
elseif (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $emailbezoeker)) {
echo "<h3>Bericht niet ontvangen</h3><p>Dit is geen geldig e-mailadres! Ga terug.</p>";
}
//als er niets is ingevuld in het veld voor het bericht, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
elseif (empty($bericht)) {
echo "<h3>Bericht niet ontvangen</h3><p>Je hebt geen bericht ingevoerd! Ga terug.</p>";
}
//als de CAPTCHA-code niet goed is ingevuld, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
elseif(($_POST['check']) != $_SESSION['check']){
echo "<h3>Bericht niet ontvangen</h3><p>Je hebt een foute CAPTCHA-code ingevoerd! Ga terug.</p>";
;}
//als alles goed is ingevuld, verstuur dan een e-mail naar jezelf (en evt. anderen)
else {
//zet hier zoveel e-mailadressen neer als je wilt, gescheiden door een komma
$aan = "[email protected]";
$onderwerp = "Informatieaanvraag van www.wiebewerkt.nl";
$bericht = wordwrap($bericht, 70);
$tekst = "Naam: $naam" . "\r\n" . "Adres: $adres" . "\r\n" . "Postcode: $postcode" . "\r\n" . "Plaats: $plaats" . "\r\n" . "E-mailadres: $emailbezoeker" . "\r\n" . "Telefoonnummer: $telefoon" . "\r\n\r\n" . "Gevonden via: $gevonden" . "\r\n\r\n" . "Bericht: $bericht";
$headers = "From: $emailbezoeker" . "\r\n";
$headers .= "Reply-To: $emailbezoeker" . "\r\n";
if (mail($aan, $onderwerp, $tekst, $headers)) {
//vervang in de tekst hieronder 'Je naam' door je eigen naam - de rest van de tekst kun je ook aanpassen
echo "<h1>Bericht verzonden</h1><p>Dank je wel voor je aanvraag. Ik zal zo spoedig mogelijk reageren!</p>";
session_destroy();
}
//als er toch nog iets fout is gegaan, laat dan deze melding zien - pas evt. de melding aan
else {
echo "<h1>Bericht niet ontvangen</h1><p>Je bericht kon niet worden verzonden. Verander je e-mailadres of probeer het later nog eens.</p>";
}
}
}
?>
<!-- Einde van het formulier -->
</span>
<img class="back" src="images/back_05.jpg" width="900" height="600" />
<div class="content"><img class="wit" src="images/wit.jpg" width="900" height="600" /></div>
<div class="footer"><div align="right" class="dbn">ontwerp en realisatie: <a href="http://www.designbynathalie.nl/" target="_blank">Design by Nathalie</a></div>
</div>
<a href="http://www.linkedin.com/profile/view?id=55628176&locale=en_US&trk=tyah&trkInfo=tas%3Awiebe%20%2Cidx%3A1-1-1" target="_blank" onmouseover="MM_swapImage('linkedin','','images/linked_ac.jpg',1)" onmouseout="MM_swapImgRestore()"><img class="linked" src="images/linked_in.jpg" width="30" height="30" id="linkedin" /></a>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>WiebeWerkt!</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body,td,th {
color: #CCC;
}
-->
</style>
<script type="text/javascript">
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
</head>
<body onload="MM_preloadImages('images/linked_ac.jpg')">
<div class="container">
<div class="header"></div>
<div class="menu">
<span class="nav"><table width="120" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="23"><a href="index.html" target="_self">Home</a></td>
</tr>
<tr>
<td height="23"><a href="wiebewerkt.html" target="_self">WiebeWerkt!</a></td>
</tr>
<tr>
<td height="23"><a href="aanpak.html" target="_self">Aanpak</a></td>
</tr>
<tr>
<td height="23"><a href="over.html" target="_self">Over Wiebe</a></td>
</tr>
<tr>
<td height="23"><p>Informatie</p></td>
</tr>
<tr>
<td height="23"><a href="referenties.html" target="_self">Referenties</a></td>
</tr>
<tr>
<td height="23"><a href="contact.html" target="_self">Contact</a></td>
</tr>
</table></span></div>
<span class="maintext">
<!-- Begin van het formulier -->
<?php
if (!isset($_POST['contactformulier'])) {
include ('inc_contact.php');
}
else {
session_start();
$naam = $_POST['naam'];
$adres = $_POST['adres']; // not required
$postcode = $_POST['postcode']; // not required
$plaats = $_POST['plaats']; // not required
$emailbezoeker = $_POST['emailbezoeker'];
$telefoon = $_POST['telefoon']; // not required
$gevonden = $_POST['gevonden']; // not required
$bericht = $_POST['bericht'];
//als er geen naam is ingevuld, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
if(empty ($naam)){
echo "<h3>Bericht niet ontvangen</h3><p>Je hebt geen naam ingevuld! Ga terug.</p>";
}
//als er geen e-mailadres is ingevuld, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
elseif (empty($emailbezoeker)) {
echo "<h3>Bericht niet ontvangen</h3><p>Je hebt geen e-mailadres ingevoerd! Ga terug.</p>";
}
//als het e-mailadres geen @-teken bevat, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
elseif (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $emailbezoeker)) {
echo "<h3>Bericht niet ontvangen</h3><p>Dit is geen geldig e-mailadres! Ga terug.</p>";
}
//als er niets is ingevuld in het veld voor het bericht, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
elseif (empty($bericht)) {
echo "<h3>Bericht niet ontvangen</h3><p>Je hebt geen bericht ingevoerd! Ga terug.</p>";
}
//als de CAPTCHA-code niet goed is ingevuld, laat dan een foutmelding zien - de tekst van deze foutmelding kun je aanpassen
elseif(($_POST['check']) != $_SESSION['check']){
echo "<h3>Bericht niet ontvangen</h3><p>Je hebt een foute CAPTCHA-code ingevoerd! Ga terug.</p>";
;}
//als alles goed is ingevuld, verstuur dan een e-mail naar jezelf (en evt. anderen)
else {
//zet hier zoveel e-mailadressen neer als je wilt, gescheiden door een komma
$aan = "[email protected]";
$onderwerp = "Informatieaanvraag van www.wiebewerkt.nl";
$bericht = wordwrap($bericht, 70);
$tekst = "Naam: $naam" . "\r\n" . "Adres: $adres" . "\r\n" . "Postcode: $postcode" . "\r\n" . "Plaats: $plaats" . "\r\n" . "E-mailadres: $emailbezoeker" . "\r\n" . "Telefoonnummer: $telefoon" . "\r\n\r\n" . "Gevonden via: $gevonden" . "\r\n\r\n" . "Bericht: $bericht";
$headers = "From: $emailbezoeker" . "\r\n";
$headers .= "Reply-To: $emailbezoeker" . "\r\n";
if (mail($aan, $onderwerp, $tekst, $headers)) {
//vervang in de tekst hieronder 'Je naam' door je eigen naam - de rest van de tekst kun je ook aanpassen
echo "<h1>Bericht verzonden</h1><p>Dank je wel voor je aanvraag. Ik zal zo spoedig mogelijk reageren!</p>";
session_destroy();
}
//als er toch nog iets fout is gegaan, laat dan deze melding zien - pas evt. de melding aan
else {
echo "<h1>Bericht niet ontvangen</h1><p>Je bericht kon niet worden verzonden. Verander je e-mailadres of probeer het later nog eens.</p>";
}
}
}
?>
<!-- Einde van het formulier -->
</span>
<img class="back" src="images/back_05.jpg" width="900" height="600" />
<div class="content"><img class="wit" src="images/wit.jpg" width="900" height="600" /></div>
<div class="footer"><div align="right" class="dbn">ontwerp en realisatie: <a href="http://www.designbynathalie.nl/" target="_blank">Design by Nathalie</a></div>
</div>
<a href="http://www.linkedin.com/profile/view?id=55628176&locale=en_US&trk=tyah&trkInfo=tas%3Awiebe%20%2Cidx%3A1-1-1" target="_blank" onmouseover="MM_swapImage('linkedin','','images/linked_ac.jpg',1)" onmouseout="MM_swapImgRestore()"><img class="linked" src="images/linked_in.jpg" width="30" height="30" id="linkedin" /></a>
</body>
</html>
En dan komt je doctype etc. en de rest van je pagina. :) ( niet de php tags om session_start() vergeten )
En dreamweaver mag zeuren tot hij een ons weegt gebruik dan een goede IDE en geen dreamweaver want dat is 90% troep en voor die overige 10% niet waard om te gebruiken.
Klopt het dan dat het er twee keer in komt te staan? Ik heb het nu bovenaan gezet en de foutmelding is idd weg. Moet ik het verder op de pagina laten staan of moet het daar dan weg?
Die 2e keer moet dan weg.
Ok, super! Het werkt. Dank jullie wel voor de hulp.