Gastenboek schrijft niets meer in database, en gegevens worden niet meer opgehaald
Zo als ik in de titel al zei, mijn gastenboek schrijft geen gegevens meer in de database, en ze haalt ook geen gegevens meer op.
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
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
<?
include("routines.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<?standard_head_script();?>
<title>TeWinkelGroup - Home</title>
</head>
<body>
<center>
<div id="header">
<table border="0" cellspacing="1">
<tr>
<td>
<?logo();?>
</td>
<td>
<div id="menu">
<ul>
<center>
<li class="active">
<a href="#">Home</a>
</li>
<li>
<a href="#">Gastenboek</a>
</li>
<li>
<a href="#">Geschiedenis</a>
</li>
<li>
<a href="#">Contact</a>
</li>
</center>
</ul>
</div>
</td>
<td width="175px">
<div id="language">
<ul>
<li>
<img src="img/nederlan.gif" height="15" width="20"> <a href="">Nederlands</a>
</li>
<li>
<img src="img/frans.gif" height="15" width="20"> <a href="">Frans</a>
</li>
</ul>
</div>
</td>
</tr>
</table>
</div>
<div id="promo">
<!-- Hier komt de promo content.-->
</div>
<div id="content-index">
<center>
test
</center>
</diV>
<div id="content-gastenboek">
<?
$sql="SELECT * FROM gastenboek ORDER BY datum";
$result=mysql_query($sql);
if($result == false){
echo "Er staan nog geen berichten in het Gastenboek.";
}
else{
while($row = mysql_fetch_array($result)){
$this_naam=$row['naam'];
$this_bericht=$row['bericht'];
$this_datum=$row['datum'];
?>
<div id="show_gastenboek_reacties">
<table border="1" cellspacing="1" width="500px">
<tr>
<td><?spacerwidth15();?></td>
<td><?spacerheight25();?></td>
</tr>
<tr>
<td>Op <?echo $this_datum;?> schreef <?echo $this_naam;?></td>
</tr>
<tr>
<td><?echo $this_bericht;?></td>
</tr>
</table>
<?
}
}
?>
</div>
<div id="new_gastenboek_reaction">
<table border="0" cellspacing="1" width="100%">
<tr>
<td>
<center>
<fieldset>
<legend><h3>Voeg een bericht toe</h3></legend>
<form action="" method="post">
<table border="1">
<tr>
<td>Naam:</td>
<td><input type="text" name="naam" maxlength="50" cols="75" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" maxlength="50" /></td>
</tr>
<tr>
<td>Bericht:</td>
<td><textarea cols="25" rows="5" name="bericht"></textarea><br /></td>
</tr>
<div style="position: absolute; left: -200px; top: -200px;"><br />
<input type="text" name="funname" id="funname" size="40" value="" />
</div>
<tr align="center">
<td></td>
<td><input type="submit" name="add_message" value="Verzenden" /><td>
</tr>
</table>
</form>
</fieldset>
<?
// Check of er een bericht gepost is zodat het toegevoegd
// moet worden
if ($_POST['add_message']) {
//1e fase om te kijken of we met hackers of spammers ziten.
//Indien de funname is ingevuld. Is het een hacker
//Dan wordt deze speler terug naar gastenboek.php gestuurd
//en gebeurd er niets.
if($_POST['funname'] !=''){
echo"Stouterik! Je bent een hacker!";
}else{
// Om database errors te voorkomen, ga ik quotes escapen
// met een backslash voor elke variabele
// Een naam met een ' in wordt dan \'
$naam = addslashes($_POST['naam']);
$email = addslashes($_POST['email']);
$bericht = addslashes($_POST['bericht']);
//hier kijken we na of er iets is ingevuld, is dat niet zo dan geven we hem een mededeling mee
//dit is de 2e fase om spammers en hackers tegen te gaan.
if($_POST['naam'] ==''){
echo "U dient een naam in te vullen!";
}elseif($_POST['email'] ==''){
echo "U dient een email in te vullen!";
}elseif($_POST['bericht'] ==''){
echo "U dient een bericht in te vullen!";
}else{
// Stel de query op met INSERT
$query = "INSERT INTO gastenboek (naam, email, bericht, datum, ip) "
. "VALUES ('$naam','$email','$bericht', NOW(), '".$_SERVER['REMOTE_ADDR']."')";
// voer de query uit
$result = mysql_query($query);
if ($result == true) {
echo "Bedankt $naam! Om een bericht achter te laten op TeWinkelGroup";
} else {
echo "Sorry, er ging iets mis bij het toevoegen van je bericht.";
}
}
}
}
?>
</center>
</td>
</tr>
</table>
</div>
</div>
<?footer();?>
</center>
</body>
</html>
include("routines.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<?standard_head_script();?>
<title>TeWinkelGroup - Home</title>
</head>
<body>
<center>
<div id="header">
<table border="0" cellspacing="1">
<tr>
<td>
<?logo();?>
</td>
<td>
<div id="menu">
<ul>
<center>
<li class="active">
<a href="#">Home</a>
</li>
<li>
<a href="#">Gastenboek</a>
</li>
<li>
<a href="#">Geschiedenis</a>
</li>
<li>
<a href="#">Contact</a>
</li>
</center>
</ul>
</div>
</td>
<td width="175px">
<div id="language">
<ul>
<li>
<img src="img/nederlan.gif" height="15" width="20"> <a href="">Nederlands</a>
</li>
<li>
<img src="img/frans.gif" height="15" width="20"> <a href="">Frans</a>
</li>
</ul>
</div>
</td>
</tr>
</table>
</div>
<div id="promo">
<!-- Hier komt de promo content.-->
</div>
<div id="content-index">
<center>
test
</center>
</diV>
<div id="content-gastenboek">
<?
$sql="SELECT * FROM gastenboek ORDER BY datum";
$result=mysql_query($sql);
if($result == false){
echo "Er staan nog geen berichten in het Gastenboek.";
}
else{
while($row = mysql_fetch_array($result)){
$this_naam=$row['naam'];
$this_bericht=$row['bericht'];
$this_datum=$row['datum'];
?>
<div id="show_gastenboek_reacties">
<table border="1" cellspacing="1" width="500px">
<tr>
<td><?spacerwidth15();?></td>
<td><?spacerheight25();?></td>
</tr>
<tr>
<td>Op <?echo $this_datum;?> schreef <?echo $this_naam;?></td>
</tr>
<tr>
<td><?echo $this_bericht;?></td>
</tr>
</table>
<?
}
}
?>
</div>
<div id="new_gastenboek_reaction">
<table border="0" cellspacing="1" width="100%">
<tr>
<td>
<center>
<fieldset>
<legend><h3>Voeg een bericht toe</h3></legend>
<form action="" method="post">
<table border="1">
<tr>
<td>Naam:</td>
<td><input type="text" name="naam" maxlength="50" cols="75" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" maxlength="50" /></td>
</tr>
<tr>
<td>Bericht:</td>
<td><textarea cols="25" rows="5" name="bericht"></textarea><br /></td>
</tr>
<div style="position: absolute; left: -200px; top: -200px;"><br />
<input type="text" name="funname" id="funname" size="40" value="" />
</div>
<tr align="center">
<td></td>
<td><input type="submit" name="add_message" value="Verzenden" /><td>
</tr>
</table>
</form>
</fieldset>
<?
// Check of er een bericht gepost is zodat het toegevoegd
// moet worden
if ($_POST['add_message']) {
//1e fase om te kijken of we met hackers of spammers ziten.
//Indien de funname is ingevuld. Is het een hacker
//Dan wordt deze speler terug naar gastenboek.php gestuurd
//en gebeurd er niets.
if($_POST['funname'] !=''){
echo"Stouterik! Je bent een hacker!";
}else{
// Om database errors te voorkomen, ga ik quotes escapen
// met een backslash voor elke variabele
// Een naam met een ' in wordt dan \'
$naam = addslashes($_POST['naam']);
$email = addslashes($_POST['email']);
$bericht = addslashes($_POST['bericht']);
//hier kijken we na of er iets is ingevuld, is dat niet zo dan geven we hem een mededeling mee
//dit is de 2e fase om spammers en hackers tegen te gaan.
if($_POST['naam'] ==''){
echo "U dient een naam in te vullen!";
}elseif($_POST['email'] ==''){
echo "U dient een email in te vullen!";
}elseif($_POST['bericht'] ==''){
echo "U dient een bericht in te vullen!";
}else{
// Stel de query op met INSERT
$query = "INSERT INTO gastenboek (naam, email, bericht, datum, ip) "
. "VALUES ('$naam','$email','$bericht', NOW(), '".$_SERVER['REMOTE_ADDR']."')";
// voer de query uit
$result = mysql_query($query);
if ($result == true) {
echo "Bedankt $naam! Om een bericht achter te laten op TeWinkelGroup";
} else {
echo "Sorry, er ging iets mis bij het toevoegen van je bericht.";
}
}
}
}
?>
</center>
</td>
</tr>
</table>
</div>
</div>
<?footer();?>
</center>
</body>
</html>
Weet er iemand waar dat mijn fout zit?
alvast bedankt!
Robbe
Toevoeging op 14/04/2014 15:53:59:
PROBLEEM OPGELOST :D
onder de include("routines.php");
moest ik nog een
connecttodb(); plaatsen :)
Hoe kom er erbij dat als $result false is dat er geen berichten in je gastenboek staan?
De query is dan gewoon stuk, en dan zou je gewoon netjes mysql_error() moeten bekijken.
Je <div> heb je in je while lus staan en wordt dus tig keer geplaatst.
De </div> staat na je while lus zodat er bergen niet afgesloten <div>'s staan.
gebruik ook <¿php in plaats van <¿ omdat de korte versie door veel servers niet (meer) ondersteund wordt.
@pip Werkt wel hoor :) Geen enkel foutje te bespeuren!
Er is een verschil tussen wel werken en goed werken.
>>> Geen enkel foutje te bespeuren!
Wel in je broncode.
Bij elke bericht open je een div <div id="show_gastenboek_reacties">
Maar sluit hem na de while maar 1x af.
Dus als je 100 berichten hebt, sluit je em 1x en heb je 99 open div's.
Je kunt regel 79 beter verplaatsen tussen 66 en 67.
Ook is t wat overdreven om voor elke bericht een nieuwe table te gebruiken. Als je de table ook opent voor de while en afsluit na de while heb je maar 1 table nodig voor je berichten.
Dankje Michael!