captcha geeft error in pagina
Ik heb nu een script van een captcha (http://www.phphulp.nl/php/scripts/8/1042/)
hij doet et perfect maar ik krijg in de pagina nu deze error:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/vhosts/darkdimensions.nl/subdomains/pkfreeplay/httpdocs/guestbook.php:5) in /home/vhosts/darkdimensions.nl/subdomains/pkfreeplay/httpdocs/index2.php on line 7
Notice: Undefined index: p in /home/vhosts/darkdimensions.nl/subdomains/pkfreeplay/httpdocs/guestbook.php on line 34
op line 7 staat: session_start();
en op line 34 niks
weet iemand wat er fout is??
Wat staan er op de regels daarvoor? Daar moet je even naar kijken ;-)
Gewijzigd op 01/01/1970 01:00:00 door Raymond Oomen
raymond schreef op 26.04.2008 23:11:
En dat noem jij een oplossing???Probleem al opgelost heb display errors uitgezet
Wat dacht je er van om de notice op te lossen? Jij gaat werken met een variabele die niet bestaat, dat controleer jij niet. Deze bug, want dat is het, zie jij nu niet meer, deze gaat nu elders opduiken... En hoe je dat gaat oplossen, Joost mag het weten, jij weet niet welke variabelen er nu wel of niet bestaan.
Errors niet meer tonen is voor dwazen en websites die live zijn. Dan schrijf je de boel weg in je logboek. Jij valt duidelijk in de eerste categorie... ;)
hoe moet ik het dan oplossen kijk is onder mijn naam geen wonder dat ik het zo doe XD
je moet dus in je code kijken wat er staat voor dat je session start aanroept.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
// We willen op de hoogte gehouden worden van alle errors / notices
ini_set('display_errors', 'off');
error_reporting(E_ALL);
// we gaan met sessies werken
session_start();
?>
// We willen op de hoogte gehouden worden van alle errors / notices
ini_set('display_errors', 'off');
error_reporting(E_ALL);
// we gaan met sessies werken
session_start();
?>
geef eens wat relevante code.
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
<?
// We willen op de hoogte gehouden worden van alle errors / notices
ini_set('display_errors', 'on');
error_reporting(E_ALL);
// we gaan met sessies werken
session_start();
?>
<!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>Gastenboek</title>
<meta http-equiv="REFRESH" content="240; URL=guestbook.php" />
<?PHP require_once('includes/engine.inc.php'); ?>
<style type="text/css">
@import "includes/css/style.css";
</style>
<script language="javascript" type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>
<script src="../SpryAssets/SpryEffects.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
theme : "advanced",
plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
// Theme options
theme_advanced_buttons1 : "newdocument,bold,italic,underline,strikethrough,|,fontselect,fontsizeselect,link,unlink,image,code,|,charmap,emotions,iespell",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "top",
theme_advanced_resizing : false,
// Example content CSS (should be your site CSS)
content_css : "includes/css/style.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
function MM_effectAppearFade(targetElement, duration, from, to, toggle)
{
Spry.Effect.DoFade(targetElement, {duration: duration, from: from, to: to, toggle: toggle});
}
</script>
<script language="javascript" type="text/javascript">
function show(hidden)
{
var hidden;
hiddentag = document.getElementById( hidden );
if(hiddentag.style.display=='block'){
hiddentag.style.display='none';
}else{
if (hiddentag.style.display=='none'){
hiddentag.style.display='block';
} else {
hiddentag.style.display='none';
}
}
}
</script>
</head>
<body bgcolor="#000000">
<br />
<?PHP
if(isset($_POST['invoer'])){
$naam = $_POST['naam'];
$email = $_POST['mail'];
$datum = $_POST['datum'];
$bericht = str_replace("\n", "<br />", $_POST['bericht']);
if(empty($naam)){ echo '<font color="red"><strong>Vul een naam in!</strong></font><br />'; $run = "no";}
if(empty($bericht)){ echo '<font color="red"><strong>Vul een bericht in!</strong></font><br />'; $run = "no";}
if(empty($captcha)){ echo '<font color="red"><strong>Vul beveiligings code in</strong></font><br />'; $run = "no";}
if($run != "no"){ echo gastenboek_toevoegen($naam, $email, $datum, $bericht); }
}
?>
<table class="style3">
<td>
<li id="archives">
<li><a href="#" onclick="show('text'); "><div class="minimize">Post nieuw bericht.</div></a>
<ul id="text" class="weken">
<li>
<form method="post" action="<? $_SERVER['PHP_SELF']; ?>">
<font color="#FFFFFF">Naam: </font>
<input type="text" name="naam" / class="style"><br />
<font color="#FFFFFF">Email:</font>
<input type="text" name="mail" / class="style">
<br />
<input type="hidden" name="datum" value="<?= date("Y-m-d H-i-s") ?>" />
<font color="#FFFFFF">Bericht:</font>
<br />
<textarea name="bericht" cols="54" rows="10">Typ hier je bericht... <br />Tip: Deactiveer de derde knop van de onderste rij met functies.<br />Tip: als je een 'enter' invoegt gebruik dan de combinatie 'Shift - Enter'</textarea>
<?
// controlen of het formulier gesubmit is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($_POST['captcha_code']) && sha1(md5($_POST['captcha_code'])) == $_SESSION['captcha_code'])
{
echo 'De code is correct';
}
else {
echo 'De ingevoerde code is niet juist! klik op refresh om opnieuw te proberen';
}
}
else {
$i = range(1, 8);
echo '
<br>
<img src="c' . $i[array_rand($i)] . '.php" />
<br>
Voer bovenstaande toegangscode in.<br>
<label for="captcha_code">Code:</label>
<input type="text" name="captcha" class="style"><br>
';
}
?>
<input type="submit" name="invoer" value="Post bericht!" class="style2" />
</form> </li></ul></li></li> </td>
</tr>
<table>
<a href="guestbook.php" class="style2">Refresh</a>
<br />
<?php
$search_total_results = // haal aantal resultaten op;
$search_number_pages = ceil ($search_total_results / $search_per_page);
$sql .= "
LIMIT " . $search_first_result . ", " . $search_per_page . "
";
if ($search_total_results > $search_per_page) {
$content_html .= '<div id="paginering">';
$content_html .= '<p>';
for ($i = 0; $i < $search_number_pages; $i++) {
if ($i >= $search_max_pages) break;
if ($i * $search_per_page == $search_first_result) {
$content_html .= '<strong>[' . ($i + 1) . ']</strong>';
}
else {
$content_html .= '<a href="?first=' . ($i * $search_per_page) . '">' . ($i + 1) . '</a>';
}
}
$content_html .= '</p>';
$content_html .= '</div>';
}
?>
<?PHP
//mysql query uitdraai om informatie uit te lezen uit de database
$query = "SELECT * FROM gastenboek ORDER BY datum DESC";
$resul = mysql_query($query);
// weergave
$i = 1;
while($rij = mysql_fetch_assoc($resul))
{
if(is_float($i/ 2) == true){
?>
<div id="paginering">
<table class="style1">
<tr><td class="style1"><a class="style" href="mailto:<?= $rij['mail'] ?>"><?= $rij['naam'] ?></a></td></tr>
<tr><td class="style1">Datum: <?= $rij['datum'] ?></td></tr>
<tr><td class="style1">bericht:</td></tr>
<tr><td class="bericht"><?= $rij['bericht'] ?></td></tr>
</table>
<?PHP
$i++;
}else{
?>
<table class="style2">
<tr><td class="style2"><a class="style" href="mailto:<?= $rij['mail'] ?>"><?= $rij['naam'] ?></a></td></tr>
<tr><td class="style2">Datum: <?= $rij['datum'] ?></td></tr>
<tr><td class="style2">bericht:</td></tr>
<tr><td class="bericht"><?= $rij['bericht'] ?></td></tr>
</table>
</div>
<?PHP
$i++;
}
}
?>
</body>
</html>
// We willen op de hoogte gehouden worden van alle errors / notices
ini_set('display_errors', 'on');
error_reporting(E_ALL);
// we gaan met sessies werken
session_start();
?>
<!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>Gastenboek</title>
<meta http-equiv="REFRESH" content="240; URL=guestbook.php" />
<?PHP require_once('includes/engine.inc.php'); ?>
<style type="text/css">
@import "includes/css/style.css";
</style>
<script language="javascript" type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>
<script src="../SpryAssets/SpryEffects.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
theme : "advanced",
plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
// Theme options
theme_advanced_buttons1 : "newdocument,bold,italic,underline,strikethrough,|,fontselect,fontsizeselect,link,unlink,image,code,|,charmap,emotions,iespell",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "top",
theme_advanced_resizing : false,
// Example content CSS (should be your site CSS)
content_css : "includes/css/style.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
function MM_effectAppearFade(targetElement, duration, from, to, toggle)
{
Spry.Effect.DoFade(targetElement, {duration: duration, from: from, to: to, toggle: toggle});
}
</script>
<script language="javascript" type="text/javascript">
function show(hidden)
{
var hidden;
hiddentag = document.getElementById( hidden );
if(hiddentag.style.display=='block'){
hiddentag.style.display='none';
}else{
if (hiddentag.style.display=='none'){
hiddentag.style.display='block';
} else {
hiddentag.style.display='none';
}
}
}
</script>
</head>
<body bgcolor="#000000">
<br />
<?PHP
if(isset($_POST['invoer'])){
$naam = $_POST['naam'];
$email = $_POST['mail'];
$datum = $_POST['datum'];
$bericht = str_replace("\n", "<br />", $_POST['bericht']);
if(empty($naam)){ echo '<font color="red"><strong>Vul een naam in!</strong></font><br />'; $run = "no";}
if(empty($bericht)){ echo '<font color="red"><strong>Vul een bericht in!</strong></font><br />'; $run = "no";}
if(empty($captcha)){ echo '<font color="red"><strong>Vul beveiligings code in</strong></font><br />'; $run = "no";}
if($run != "no"){ echo gastenboek_toevoegen($naam, $email, $datum, $bericht); }
}
?>
<table class="style3">
<td>
<li id="archives">
<li><a href="#" onclick="show('text'); "><div class="minimize">Post nieuw bericht.</div></a>
<ul id="text" class="weken">
<li>
<form method="post" action="<? $_SERVER['PHP_SELF']; ?>">
<font color="#FFFFFF">Naam: </font>
<input type="text" name="naam" / class="style"><br />
<font color="#FFFFFF">Email:</font>
<input type="text" name="mail" / class="style">
<br />
<input type="hidden" name="datum" value="<?= date("Y-m-d H-i-s") ?>" />
<font color="#FFFFFF">Bericht:</font>
<br />
<textarea name="bericht" cols="54" rows="10">Typ hier je bericht... <br />Tip: Deactiveer de derde knop van de onderste rij met functies.<br />Tip: als je een 'enter' invoegt gebruik dan de combinatie 'Shift - Enter'</textarea>
<?
// controlen of het formulier gesubmit is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($_POST['captcha_code']) && sha1(md5($_POST['captcha_code'])) == $_SESSION['captcha_code'])
{
echo 'De code is correct';
}
else {
echo 'De ingevoerde code is niet juist! klik op refresh om opnieuw te proberen';
}
}
else {
$i = range(1, 8);
echo '
<br>
<img src="c' . $i[array_rand($i)] . '.php" />
<br>
Voer bovenstaande toegangscode in.<br>
<label for="captcha_code">Code:</label>
<input type="text" name="captcha" class="style"><br>
';
}
?>
<input type="submit" name="invoer" value="Post bericht!" class="style2" />
</form> </li></ul></li></li> </td>
</tr>
<table>
<a href="guestbook.php" class="style2">Refresh</a>
<br />
<?php
$search_total_results = // haal aantal resultaten op;
$search_number_pages = ceil ($search_total_results / $search_per_page);
$sql .= "
LIMIT " . $search_first_result . ", " . $search_per_page . "
";
if ($search_total_results > $search_per_page) {
$content_html .= '<div id="paginering">';
$content_html .= '<p>';
for ($i = 0; $i < $search_number_pages; $i++) {
if ($i >= $search_max_pages) break;
if ($i * $search_per_page == $search_first_result) {
$content_html .= '<strong>[' . ($i + 1) . ']</strong>';
}
else {
$content_html .= '<a href="?first=' . ($i * $search_per_page) . '">' . ($i + 1) . '</a>';
}
}
$content_html .= '</p>';
$content_html .= '</div>';
}
?>
<?PHP
//mysql query uitdraai om informatie uit te lezen uit de database
$query = "SELECT * FROM gastenboek ORDER BY datum DESC";
$resul = mysql_query($query);
// weergave
$i = 1;
while($rij = mysql_fetch_assoc($resul))
{
if(is_float($i/ 2) == true){
?>
<div id="paginering">
<table class="style1">
<tr><td class="style1"><a class="style" href="mailto:<?= $rij['mail'] ?>"><?= $rij['naam'] ?></a></td></tr>
<tr><td class="style1">Datum: <?= $rij['datum'] ?></td></tr>
<tr><td class="style1">bericht:</td></tr>
<tr><td class="bericht"><?= $rij['bericht'] ?></td></tr>
</table>
<?PHP
$i++;
}else{
?>
<table class="style2">
<tr><td class="style2"><a class="style" href="mailto:<?= $rij['mail'] ?>"><?= $rij['naam'] ?></a></td></tr>
<tr><td class="style2">Datum: <?= $rij['datum'] ?></td></tr>
<tr><td class="style2">bericht:</td></tr>
<tr><td class="bericht"><?= $rij['bericht'] ?></td></tr>
</table>
</div>
<?PHP
$i++;
}
}
?>
</body>
</html>
Quote:
Notice: Undefined index: p in /home/vhosts/darkdimensions.nl/subdomains/pkfreeplay/httpdocs/guestbook.php on line 34
Waar komt deze melding vandaan? Waar gebruik jij een index p ?
Het vervelende is dat de code zo'n bende is, nu is debuggen een klein rampje geworden. Je doet ook te weinig aan foutafhandeling, er kan een hoop fout gaan zonder dat jij kunt achterhalen wát er fout gaat. Jouw huidige probleem kan er daar wel eens één van zijn.
Offtopic: sha1(md5($_POST['captcha_code'], schijnveiligheid, meer valt er niet over te zeggen.
En jouw datums, sla je die wel als datum op? Dus als DATE in het formaat yyyy-mm-dd ? Ik vermoed van niet.
zowiezo is die 2de error al opgelost had om vage reden bij mijn include get'p' staat wat niet nodig was. En de datum wordt ook gewoon goed opgeslagen dus daar is ook niks mis mee
raymond schreef op 27.04.2008 12:40:
En wat is goed? Over welk formaat en datatype hebben we het nu? Is dat yyyy-mm-dd in een DATE? Zo niet, dan is het gewoon fout. Ga bv. maar eens sorteren op datum, dat blijkt dan ineens niet meer te werken, 1-4-2008 komt dan eerder dan 20-1-2008...En de datum wordt ook gewoon goed opgeslagen dus daar is ook niks mis mee
Edit: De foutmelding heeft het over 2 bestanden, guestbook.php en index2.php. Dit kan natuurlijk ook nog voor problemen zorgen, geen idee welk bestand jij hierboven toont en wat je daar mee doet. Het lijkt erop dat deze wordt geinclude waardoor dus een error optreedt.
Quote:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/vhosts/darkdimensions.nl/subdomains/pkfreeplay/httpdocs/guestbook.php:5) in /home/vhosts/darkdimensions.nl/subdomains/pkfreeplay/httpdocs/index2.php on line 7
Gewijzigd op 01/01/1970 01:00:00 door Frank -
raymond schreef op 27.04.2008 12:49:
Dit is dus geen datum, als wordt de string wel goed gesorteerd. In SQL kun je hier verder weinig meer mee, even 5 minuten er bij optellen zit er niet meer in.hij sorteert hem ook gewoon op de goede manier
date("Y-m-d H-i-s")
date("Y-m-d H-i-s")
Maar goed, dit is niet het grootste probleem dat je nu hebt, zie de aanvulling op mijn vorige reactie.
Gewijzigd op 01/01/1970 01:00:00 door Raymond Oomen
(er van uitgaande dat ik enige vorm van intelligentie bezit en de nodige ervaring heb...)
<--guestbook.php-->
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
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
<!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>Guestbook</title><style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
</head>
<body bgcolor="#000000">
<center><table border="0" class="text-align:right;">
<tr>
<td> <?php
include('header.php');
?>
</td>
</tr>
<tr>
<td valign="top">
<table width="100%">
<tr>
<td valign="top" width="100%">
<?
include('index2.php');
?>
</td>
<td valign="top">
<?php
include('ltstnws.php');
?>
</td></tr></table>
</td>
</tr>
<tr>
<td background="footer.jpg" width="823" height="57" valign="center" align="right"><span class="style1"><strong> copyright pk-freeplay.tk</strong></span> </td>
</tr>
</table>
</center>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Guestbook</title><style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
</head>
<body bgcolor="#000000">
<center><table border="0" class="text-align:right;">
<tr>
<td> <?php
include('header.php');
?>
</td>
</tr>
<tr>
<td valign="top">
<table width="100%">
<tr>
<td valign="top" width="100%">
<?
include('index2.php');
?>
</td>
<td valign="top">
<?php
include('ltstnws.php');
?>
</td></tr></table>
</td>
</tr>
<tr>
<td background="footer.jpg" width="823" height="57" valign="center" align="right"><span class="style1"><strong> copyright pk-freeplay.tk</strong></span> </td>
</tr>
</table>
</center>
</body>
</html>