fout
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
<!DOCTYPE >
<html>
<FONT face="Arial,Tahoma">
<head>
<title>gm1999 home</title>
</head>
<body>
<h1>Dit is een voorproefje van mijn site!</h1>
<B>De template komt nog</B></br>
Ik ben bezig met een site,</br>
op deze site komen door mij of door een team waarbij ik aan meedee -gemaakte spellen</BR>
Ook komen hier dingen van c++,</br>
Dat ben ik nu aan het leren.</br>
En nog veel meer...</br>
Heb je ideen voor de site?meldt het hier!</br>
<?
//------------------------//
// DATABASE CONFIGURATIE //
//------------------------//
$mysql_user =
$mysql_pass =
$mysql_host =
$mysql_dbn =
/*
Hier maakt hij een database connectie
Hij selecteert de database $mysql_dbn
Deze heb je hierboven aangegeven.
Vervolgens gebruikt hij als tweede argument,
Dit is dus na de komma, de verbinding met de
database.
Hiervoor worden $mysql_host, $mysql_user en $mysql_pass
gebruikt. Ook deze heb je hierboven bij de database
configuratie aangegeven.
De @ voor de functie mysql_select_db() en mysql_connect(),
staat voor het verbergen van eventuele foutmeldingen
die hij geeft. Dit is gedaan zodat je een eigen foutmelding
kan creeren wanneer de database connectie mislukt is.
De regel hieronder betekent dus:
Als er GEEN verbinding kan worden gemaakt, doe dan:
*/
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
//--- De verbinding is nu dus mislukt, geef hier een melding van
echo "ERROR:database connectie mislukt!";
//--- Zorg ervoor dat het script stopt.
exit();
}
/*
De verbinding is nu dus wel gelukt. Nu kijken we
of het formulier verstuurd is d.m.v. de POST methode.
Als dit het geval is, dan is het formulier ingevuld en opgestuurd.
POST = via de server verstuurd.
GET = via het URL adres verstuurd (bijv.: index.php?naam=Bas)
Kijk ook of de velden naam, email en bericht zijn ingevuld.
Dit doe je door te kijken of ze niet leeg zijn dus: !empty($_POST['veld_naam'])
Kijk voor de zekerheid ook of er een apenstaartje (@) zit in het
e-mail adres. Dit is niet super veilig maar voldoet voor nu. Dit
gebeurt d.m.v. de functie strstr() (zie: www.php.net/strstr)
*/
if ($_SERVER['REQUEST_METHOD'] == "POST" && !empty($_POST['naam']) && !empty($_POST['bericht']) )
{
//--- De datum staat als DATETIME gedefineerd in de database
//--- Dit is dan het juiste 'formaat', bijv: 2006-11-27 12:03:53
$datum = date('Y-m-d H:i:s');
//--- Voeg het bericht toe aan de database
$sql = "INSERT INTO phphulp_gastenboek SET ";
$sql .= "id = ''";
$sql .= ", naam = '" . $_POST['naam'] . "'";
$sql .= ", bericht = '" . $_POST['bericht'] . "'";
$sql .= ", datum = '" . $datum . "'";
//--- Voor de SQL code uit
$res = mysql_query($sql);
//--- Als het goed is gegaan, is $res niet leeg
if (!empty($res))
{
echo "<h1>Bericht toegevoegd</h1>";
echo "<p>Bedankt voor je bericht. Het bericht is toegevoegd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
//--- Het bericht is niet toegevoegd, problemen met de database!
//--- Je ziet dat hier geen akkolades worden gebruikt (dus: { en }). Omdat er
//--- Slechts 1 regel onder de 'else' moet worden uitgevoerd is dit niet nodig.
else
echo "Bericht NIET toegevoegd. Er is iets misgegaan met het invoeren in de database.";
}
//-------------------------------
// Voeg een nieuw bericht toe
//-------------------------------
/*
Als het GET is, wordt het dus meegegeven in het URL adres
Hier staat dus:
Als show=add in het URL adres staat, volg dan dit stukje.
Bijvoorbeeld: index.php?show=add
*/
elseif ($_GET['show'] == "add" || $_POST['show'] == "add")
{
echo "<h1>Voeg een bericht toe</h1>";
echo "<p>Laat mij <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten in gastenboek\">alle berichten in het gastenboek zien</a>.</p>";
// Als het formulier verstuurd is, dan ben je hier eerder geweest. De velden zijn dan niet juist ingevuld.
if ($_SERVER['REQUEST_METHOD'] == "POST")
echo "<p>Je bent enkele velden vergeten in te vullen";
/*
Laat het formulier zien
Hier zie je dus ook: method=POST. Dit betekent dus dat het server-side verstuurd wordt en niet via de URL.
*/
echo "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<p>";
echo "<input type=\"hidden\" name=\"show\" value=\"add\" />";
"Naam:<br>";
/*
Als het eerder verstuurd is, zet dan de value goed. De functie htmlentities() zorgt
ervoor dat hij speciale tekens die de opmaak van de pagina zouden kunnen beinvloeden,
of ervoor kunnen zorgen dat iemand kwade bedoelingen heeft omgezet worden in zogehete
htmlentities. Dus: < wordt < é wordt é enzovoort. Zie: www.php.net/htmlentities
*/
echo '<input type="text" name="naam" value=' . htmlentities($_POST['naam']) . '><br/>';
echo "Bericht:<br />";
echo "<textarea name=\"bericht\" rows=\"5\" cols=\"35\">" . htmlentities($_POST['bericht']) . "</textarea><br />";
echo "<input type=\"submit\" name=\"submit\" value=\" Bericht plaatsen \"></p>";
echo "</form>";
}
//-------------------------------
// Voeg een nieuw bericht toe
//-------------------------------
else
{
echo "<h1>Gastenboek</h1>";
echo "<p>Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.</p>";
echo "<p>"
/*
Hier worden de berichten geselecteerd uit de database
DATE_FORMAT(datum, ...) is nodig omdat (zoals eerder geschreven)
de datum als volgt in de database staat: 2006-11-27 12:02:53. Om
dit op zijn Nederlands te weergeven, gebruiken we de MySQL functie DATE_FORMAT.
De %d staat voor de dag, %m voor de maand en %Y voor het jaar dus: 27.11.2007
*/
$sql = "SELECT id,naam,bericht,DATE_FORMAT(datum,'%d.%m.%Y') as show_datum FROM phphulp_gastenboek ORDER BY datum DESC";
// Voer SQL code uit
$res = mysql_query($sql);
// Kijk of er 1 of meerdere rijen gevonden zijn
if (mysql_num_rows($res) >= 1)
{
// Toon elke rij tot dat er geen rijen meer zijn
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
echo "<p><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>:<br />";
echo $row['bericht'] . "</p>";
}
}
// Er zijn geen rijen gevonden, geef aan dat er nog geen berichten zijn toegevoegd
else
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
$bericht = $_GET['bericht'];
$bericht = str_replace('(6)','<img src=\"smilley\(6).gif\">',echo($bericht));
$bericht = str_replace('(A)','<img src=\"smilley\(A).gif\">',echo($bericht));
$bericht = str_replace('(L)','<img src=\"smilley\(L).gif\">',echo($bericht));
$bericht = str_replace('(:!)','<img src=\"smilley\:!.gif\">',echo($bericht));
$bericht = str_replace('(:"(','<img src=smilley/verdrietig.gif\">',echo($bericht));
$bericht = str_replace(':$','<img src=\"smilley\:$.gif\">',echo($bericht));
$bericht = str_replace(':%','<img src=\"smilley/worshippy.gif\">',echo($bericht));
$bericht = str_replace(':(','<img src=\"smilley\:(.gif\">',echo($bericht));
$bericht = str_replace(':)','<img src=\"smilley\:).gif\">',echo($bericht));
$bericht = str_replace(':D','<img src=\"smilley\:D.gif\">',echo($bericht));
$bericht = str_replace(':P','<img src=\"smilley\:P.gif\">',echo($bericht));
$bericht = str_replace(':X','<img src=\"smilley\:X.gif\">',echo($bericht));
$bericht = str_replace(':Z','<img src=\"smilley\:Z.gif\">',echo($bericht));
$bericht = str_replace(':|','<img src=\"smilley\:|.gif\">',echo($bericht));
$bericht = str_replace(';)','<img src=\"smilley\;).gif\">',echo($bericht));
$bericht = str_replace('B)','<img src=\"smilley\B).gif\">',echo($bericht));
$bericht = str_replace(':"(','<img src=\"smilley/confused.gif.gif\">',echo($bericht));
?>
<h1>Updates</h1>
Momentele Updates:</br>
30 Juli-De voorbeeld pagina staat nu op het internet.</br>
<!-- AddThis Button BEGIN -->
<a href="http://www.addthis.com/bookmark.php?v=250&pub=gm1999" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')" onmouseout="addthis_close()" onclick="return addthis_sendto()"><img src="http://s7.addthis.com/static/btn/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a><script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js?pub=gm1999"></script>
<!-- AddThis Button END -->
</body>
</font>
</html>
<html>
<FONT face="Arial,Tahoma">
<head>
<title>gm1999 home</title>
</head>
<body>
<h1>Dit is een voorproefje van mijn site!</h1>
<B>De template komt nog</B></br>
Ik ben bezig met een site,</br>
op deze site komen door mij of door een team waarbij ik aan meedee -gemaakte spellen</BR>
Ook komen hier dingen van c++,</br>
Dat ben ik nu aan het leren.</br>
En nog veel meer...</br>
Heb je ideen voor de site?meldt het hier!</br>
<?
//------------------------//
// DATABASE CONFIGURATIE //
//------------------------//
$mysql_user =
$mysql_pass =
$mysql_host =
$mysql_dbn =
/*
Hier maakt hij een database connectie
Hij selecteert de database $mysql_dbn
Deze heb je hierboven aangegeven.
Vervolgens gebruikt hij als tweede argument,
Dit is dus na de komma, de verbinding met de
database.
Hiervoor worden $mysql_host, $mysql_user en $mysql_pass
gebruikt. Ook deze heb je hierboven bij de database
configuratie aangegeven.
De @ voor de functie mysql_select_db() en mysql_connect(),
staat voor het verbergen van eventuele foutmeldingen
die hij geeft. Dit is gedaan zodat je een eigen foutmelding
kan creeren wanneer de database connectie mislukt is.
De regel hieronder betekent dus:
Als er GEEN verbinding kan worden gemaakt, doe dan:
*/
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
//--- De verbinding is nu dus mislukt, geef hier een melding van
echo "ERROR:database connectie mislukt!";
//--- Zorg ervoor dat het script stopt.
exit();
}
/*
De verbinding is nu dus wel gelukt. Nu kijken we
of het formulier verstuurd is d.m.v. de POST methode.
Als dit het geval is, dan is het formulier ingevuld en opgestuurd.
POST = via de server verstuurd.
GET = via het URL adres verstuurd (bijv.: index.php?naam=Bas)
Kijk ook of de velden naam, email en bericht zijn ingevuld.
Dit doe je door te kijken of ze niet leeg zijn dus: !empty($_POST['veld_naam'])
Kijk voor de zekerheid ook of er een apenstaartje (@) zit in het
e-mail adres. Dit is niet super veilig maar voldoet voor nu. Dit
gebeurt d.m.v. de functie strstr() (zie: www.php.net/strstr)
*/
if ($_SERVER['REQUEST_METHOD'] == "POST" && !empty($_POST['naam']) && !empty($_POST['bericht']) )
{
//--- De datum staat als DATETIME gedefineerd in de database
//--- Dit is dan het juiste 'formaat', bijv: 2006-11-27 12:03:53
$datum = date('Y-m-d H:i:s');
//--- Voeg het bericht toe aan de database
$sql = "INSERT INTO phphulp_gastenboek SET ";
$sql .= "id = ''";
$sql .= ", naam = '" . $_POST['naam'] . "'";
$sql .= ", bericht = '" . $_POST['bericht'] . "'";
$sql .= ", datum = '" . $datum . "'";
//--- Voor de SQL code uit
$res = mysql_query($sql);
//--- Als het goed is gegaan, is $res niet leeg
if (!empty($res))
{
echo "<h1>Bericht toegevoegd</h1>";
echo "<p>Bedankt voor je bericht. Het bericht is toegevoegd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.";
}
//--- Het bericht is niet toegevoegd, problemen met de database!
//--- Je ziet dat hier geen akkolades worden gebruikt (dus: { en }). Omdat er
//--- Slechts 1 regel onder de 'else' moet worden uitgevoerd is dit niet nodig.
else
echo "Bericht NIET toegevoegd. Er is iets misgegaan met het invoeren in de database.";
}
//-------------------------------
// Voeg een nieuw bericht toe
//-------------------------------
/*
Als het GET is, wordt het dus meegegeven in het URL adres
Hier staat dus:
Als show=add in het URL adres staat, volg dan dit stukje.
Bijvoorbeeld: index.php?show=add
*/
elseif ($_GET['show'] == "add" || $_POST['show'] == "add")
{
echo "<h1>Voeg een bericht toe</h1>";
echo "<p>Laat mij <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten in gastenboek\">alle berichten in het gastenboek zien</a>.</p>";
// Als het formulier verstuurd is, dan ben je hier eerder geweest. De velden zijn dan niet juist ingevuld.
if ($_SERVER['REQUEST_METHOD'] == "POST")
echo "<p>Je bent enkele velden vergeten in te vullen";
/*
Laat het formulier zien
Hier zie je dus ook: method=POST. Dit betekent dus dat het server-side verstuurd wordt en niet via de URL.
*/
echo "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<p>";
echo "<input type=\"hidden\" name=\"show\" value=\"add\" />";
"Naam:<br>";
/*
Als het eerder verstuurd is, zet dan de value goed. De functie htmlentities() zorgt
ervoor dat hij speciale tekens die de opmaak van de pagina zouden kunnen beinvloeden,
of ervoor kunnen zorgen dat iemand kwade bedoelingen heeft omgezet worden in zogehete
htmlentities. Dus: < wordt < é wordt é enzovoort. Zie: www.php.net/htmlentities
*/
echo '<input type="text" name="naam" value=' . htmlentities($_POST['naam']) . '><br/>';
echo "Bericht:<br />";
echo "<textarea name=\"bericht\" rows=\"5\" cols=\"35\">" . htmlentities($_POST['bericht']) . "</textarea><br />";
echo "<input type=\"submit\" name=\"submit\" value=\" Bericht plaatsen \"></p>";
echo "</form>";
}
//-------------------------------
// Voeg een nieuw bericht toe
//-------------------------------
else
{
echo "<h1>Gastenboek</h1>";
echo "<p>Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.</p>";
echo "<p>"
/*
Hier worden de berichten geselecteerd uit de database
DATE_FORMAT(datum, ...) is nodig omdat (zoals eerder geschreven)
de datum als volgt in de database staat: 2006-11-27 12:02:53. Om
dit op zijn Nederlands te weergeven, gebruiken we de MySQL functie DATE_FORMAT.
De %d staat voor de dag, %m voor de maand en %Y voor het jaar dus: 27.11.2007
*/
$sql = "SELECT id,naam,bericht,DATE_FORMAT(datum,'%d.%m.%Y') as show_datum FROM phphulp_gastenboek ORDER BY datum DESC";
// Voer SQL code uit
$res = mysql_query($sql);
// Kijk of er 1 of meerdere rijen gevonden zijn
if (mysql_num_rows($res) >= 1)
{
// Toon elke rij tot dat er geen rijen meer zijn
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = nl2br(htmlentities($row['bericht']));
echo "<p><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>:<br />";
echo $row['bericht'] . "</p>";
}
}
// Er zijn geen rijen gevonden, geef aan dat er nog geen berichten zijn toegevoegd
else
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
$bericht = $_GET['bericht'];
$bericht = str_replace('(6)','<img src=\"smilley\(6).gif\">',echo($bericht));
$bericht = str_replace('(A)','<img src=\"smilley\(A).gif\">',echo($bericht));
$bericht = str_replace('(L)','<img src=\"smilley\(L).gif\">',echo($bericht));
$bericht = str_replace('(:!)','<img src=\"smilley\:!.gif\">',echo($bericht));
$bericht = str_replace('(:"(','<img src=smilley/verdrietig.gif\">',echo($bericht));
$bericht = str_replace(':$','<img src=\"smilley\:$.gif\">',echo($bericht));
$bericht = str_replace(':%','<img src=\"smilley/worshippy.gif\">',echo($bericht));
$bericht = str_replace(':(','<img src=\"smilley\:(.gif\">',echo($bericht));
$bericht = str_replace(':)','<img src=\"smilley\:).gif\">',echo($bericht));
$bericht = str_replace(':D','<img src=\"smilley\:D.gif\">',echo($bericht));
$bericht = str_replace(':P','<img src=\"smilley\:P.gif\">',echo($bericht));
$bericht = str_replace(':X','<img src=\"smilley\:X.gif\">',echo($bericht));
$bericht = str_replace(':Z','<img src=\"smilley\:Z.gif\">',echo($bericht));
$bericht = str_replace(':|','<img src=\"smilley\:|.gif\">',echo($bericht));
$bericht = str_replace(';)','<img src=\"smilley\;).gif\">',echo($bericht));
$bericht = str_replace('B)','<img src=\"smilley\B).gif\">',echo($bericht));
$bericht = str_replace(':"(','<img src=\"smilley/confused.gif.gif\">',echo($bericht));
?>
<h1>Updates</h1>
Momentele Updates:</br>
30 Juli-De voorbeeld pagina staat nu op het internet.</br>
<!-- AddThis Button BEGIN -->
<a href="http://www.addthis.com/bookmark.php?v=250&pub=gm1999" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')" onmouseout="addthis_close()" onclick="return addthis_sendto()"><img src="http://s7.addthis.com/static/btn/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a><script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js?pub=gm1999"></script>
<!-- AddThis Button END -->
</body>
</font>
</html>
nu geeft hij(op het internet) deze fout:
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /home/unajlmhf/domains/thomasberends.com/public_html/gm1999/index.php on line 159
de regel is:
$sql = "SELECT id,naam,bericht,DATE_FORMAT(datum,'%d.%m.%Y') as show_datum FROM phphulp_gastenboek ORDER BY datum DESC";
alvast bedankt,gm1999
mod_edit:
Eerst maar eens code tags toegevoegd, het is overigens hier de gewoonte om relevante code te plakken en niet zomaar alles.
Gewijzigd op 01/01/1970 01:00:00 door Gm1999
Op regel 150 eindig je niet met een ;. Hij merkt dat pas op regel 159 wegens al die commentaarregels.
maar nu geeft hij deze fout weer:
Parse error: syntax error, unexpected T_ECHO in /home/unajlmhf/domains/thomasberends.com/public_html/gm1999/index.php on line 184
:S
$bericht = str_replace('(6)','<img src=\"smilley\(6).gif\">',echo($bericht));
Moet zijn
$bericht = str_replace('(6)', '<img src="smilley(6).gif">', $bericht);
En al die andere regels dus ook.
maar dat smilley veranderen doet alleen niets.