Advies gevraagd
Ik heb een simpel gastenboek gemaakt.
Mijn vraag is of jullie hier naar willen kijken en kunnen aangeven wat er eventueel verbeterd kan worden.
Alvast bedankt!!
connect.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "gastenboek";
$connError = "Er kan op dit moment geen verbinding met de database worden gemaakt!<br />
Probeert u het later nog eens.<br />";
$dbError = "De database is op dit moment niet beschikbaar!<br />
Probeert u het later nog eens.";
mysql_connect($host, $user, $pass) or die($connError);
if(!mysql_select_db($db)) {
echo $dbError;
}
?>
$host = "localhost";
$user = "root";
$pass = "";
$db = "gastenboek";
$connError = "Er kan op dit moment geen verbinding met de database worden gemaakt!<br />
Probeert u het later nog eens.<br />";
$dbError = "De database is op dit moment niet beschikbaar!<br />
Probeert u het later nog eens.";
mysql_connect($host, $user, $pass) or die($connError);
if(!mysql_select_db($db)) {
echo $dbError;
}
?>
functies.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//geeft de tijd terug in nederlandse notatie
function convert_time($time) {
return $time = date("d-m-Y, H:i:s", strtotime($time));
}
function select_query($tabel, $field, $limit) {
if($limit > 0) {
$query = "SELECT * FROM $tabel ORDER BY $field DESC LIMIT $limit";
}
else {
$query = "SELECT * FROM $tabel ORDER BY $field DESC";
}
return mysql_query($query);
}
?>
//geeft de tijd terug in nederlandse notatie
function convert_time($time) {
return $time = date("d-m-Y, H:i:s", strtotime($time));
}
function select_query($tabel, $field, $limit) {
if($limit > 0) {
$query = "SELECT * FROM $tabel ORDER BY $field DESC LIMIT $limit";
}
else {
$query = "SELECT * FROM $tabel ORDER BY $field DESC";
}
return mysql_query($query);
}
?>
gastenboek.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
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
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
<?php ob_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="Gastenboek" content="Gastenboek">
<link rel="stylesheet" type="text/css" href="style/style.css" />
<title>Simpel gastenboek</title>
</head>
<body>
<?php
session_start();
include("include/connect.php");
include("include/functies.php");
?>
<h1>Simpel gastenboek</h1>
<table width = "400">
<tr><td><h3>Berichten</h3></td></tr>
<tr><td>------------------------------------------------------------------<tr><td>
<?php
$result = select_query("items", "datum", "5");
if(mysql_num_rows($result) > 0) {
for($i = 0; $i < 20 && $array = mysql_fetch_array($result); $i++) {
echo "<tr><td><b>Gepost op ".convert_time($array[3])."";
echo " door ".htmlspecialchars_decode($array[1])."</b></tr>";
echo "<tr><td> ".htmlspecialchars_decode($array[2])." </td></tr>";
echo "<tr><td>------------------------------------------------------------------<tr><td>";
}
}
else {
echo "<tr><td>Er zijn nog geen berichten geplaatst!</td></tr>";
echo "<tr><td>-----------------------------------------------------------------</td></tr>";
}
?>
</table>
<form method = "post" action = "<?php $_SERVER['PHP_SELF']; ?>">
<table>
<tr><td><h3>Plaats een nieuw bericht</h3></td></tr>
<tr><td><b>Naam</b><br><input type = "text" name = "naam" value = "<?php if(isset($_SESSION['naam']))echo $_SESSION['naam']; ?>"></td></tr>
<tr><td><b>Bericht</b><br><textarea name = "bericht" cols = "40" rows = "6"><?php if(isset($_SESSION['bericht']))echo $_SESSION['bericht']; ?></textarea>
<br>* maximaal 200 karakters!</td></tr>
<tr><td><input type = "submit" name = "verzenden" value = "Verzenden"></td></tr>
</table>
</form>
<?php
define("MAX_SIZE_NAAM", 40);
define("MAX_SIZE_BERICHT", 200);
if(isset($_SESSION['naam']) || isset($_SESSION['bericht'])) {
unset($_SESSION['naam']);
unset($_SESSION['bericht']);
}
if(isset($_POST['verzenden'])) {
$naam = $_POST['naam'];
$bericht = $_POST['bericht'];
$datum = date("c");
$_SESSION['naam'] = $naam;
$_SESSION['bericht'] = $bericht;
if(empty($naam)) {
echo "Vul aub uw naam in!";
header("Refresh: 3");
}
elseif(strlen($naam) > MAX_SIZE_NAAM) {
echo "Uw naam mag niet langer zijn dan 40 karakters!";
header("Refresh: 3");
}
elseif(empty($bericht)) {
echo "Typ aub eerst een bericht!";
header("Refresh: 3");
}
elseif(strlen($bericht) > MAX_SIZE_BERICHT) {
echo "Uw bericht mag niet langer zijn dan 200 karakters!";
header("Refresh: 3");
}
elseif(preg_match('/[^0-9A-Za-z_\']/', $naam)) {
echo "U heeft 1 of meer karakters in uw naam die niet zijn toegestaan!<br>";
echo "Gebruik alleen letters, cijfers en underscore!";
header("Refresh: 3");
}
else {
$naam = mysql_real_escape_string(htmlentities($naam));
$bericht = mysql_real_escape_string(htmlentities($bericht));
$date = date("Y-m-d, H:i:s");
$query = "INSERT INTO items(naam, bericht, datum)VALUES('$naam', '$bericht', '$date')";
$result = mysql_query($query);
//sessie verwijderen
session_destroy();
header("Refresh: 0");
}
}
?>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="Gastenboek" content="Gastenboek">
<link rel="stylesheet" type="text/css" href="style/style.css" />
<title>Simpel gastenboek</title>
</head>
<body>
<?php
session_start();
include("include/connect.php");
include("include/functies.php");
?>
<h1>Simpel gastenboek</h1>
<table width = "400">
<tr><td><h3>Berichten</h3></td></tr>
<tr><td>------------------------------------------------------------------<tr><td>
<?php
$result = select_query("items", "datum", "5");
if(mysql_num_rows($result) > 0) {
for($i = 0; $i < 20 && $array = mysql_fetch_array($result); $i++) {
echo "<tr><td><b>Gepost op ".convert_time($array[3])."";
echo " door ".htmlspecialchars_decode($array[1])."</b></tr>";
echo "<tr><td> ".htmlspecialchars_decode($array[2])." </td></tr>";
echo "<tr><td>------------------------------------------------------------------<tr><td>";
}
}
else {
echo "<tr><td>Er zijn nog geen berichten geplaatst!</td></tr>";
echo "<tr><td>-----------------------------------------------------------------</td></tr>";
}
?>
</table>
<form method = "post" action = "<?php $_SERVER['PHP_SELF']; ?>">
<table>
<tr><td><h3>Plaats een nieuw bericht</h3></td></tr>
<tr><td><b>Naam</b><br><input type = "text" name = "naam" value = "<?php if(isset($_SESSION['naam']))echo $_SESSION['naam']; ?>"></td></tr>
<tr><td><b>Bericht</b><br><textarea name = "bericht" cols = "40" rows = "6"><?php if(isset($_SESSION['bericht']))echo $_SESSION['bericht']; ?></textarea>
<br>* maximaal 200 karakters!</td></tr>
<tr><td><input type = "submit" name = "verzenden" value = "Verzenden"></td></tr>
</table>
</form>
<?php
define("MAX_SIZE_NAAM", 40);
define("MAX_SIZE_BERICHT", 200);
if(isset($_SESSION['naam']) || isset($_SESSION['bericht'])) {
unset($_SESSION['naam']);
unset($_SESSION['bericht']);
}
if(isset($_POST['verzenden'])) {
$naam = $_POST['naam'];
$bericht = $_POST['bericht'];
$datum = date("c");
$_SESSION['naam'] = $naam;
$_SESSION['bericht'] = $bericht;
if(empty($naam)) {
echo "Vul aub uw naam in!";
header("Refresh: 3");
}
elseif(strlen($naam) > MAX_SIZE_NAAM) {
echo "Uw naam mag niet langer zijn dan 40 karakters!";
header("Refresh: 3");
}
elseif(empty($bericht)) {
echo "Typ aub eerst een bericht!";
header("Refresh: 3");
}
elseif(strlen($bericht) > MAX_SIZE_BERICHT) {
echo "Uw bericht mag niet langer zijn dan 200 karakters!";
header("Refresh: 3");
}
elseif(preg_match('/[^0-9A-Za-z_\']/', $naam)) {
echo "U heeft 1 of meer karakters in uw naam die niet zijn toegestaan!<br>";
echo "Gebruik alleen letters, cijfers en underscore!";
header("Refresh: 3");
}
else {
$naam = mysql_real_escape_string(htmlentities($naam));
$bericht = mysql_real_escape_string(htmlentities($bericht));
$date = date("Y-m-d, H:i:s");
$query = "INSERT INTO items(naam, bericht, datum)VALUES('$naam', '$bericht', '$date')";
$result = mysql_query($query);
//sessie verwijderen
session_destroy();
header("Refresh: 0");
}
}
?>
</body>
</html>
- Gebruik geen tables als opmaak maar gebruik div's en css
Gewijzigd op 14/07/2011 10:47:59 door Maikel B
Eerst output naar de browser, en dan een header().
Lees even tutorials door waarom dat niet kan!
Nee ik heb geen voorbeeld online. Het is een klein project voor mijzelf waarmee ik mijn (web)programmeer vaardigheden wil verbeteren.
Welke redenen zijn er om div's in de plaats van tables als opmaak te gebruiken?
@Joris
Het werkt wel, dus ik neem aan dat het slechte programmeer stijl is?
Ik zal eens opzoek gaan naar waarom dit niet kan.
* Gebruik nooit ob_start, stop of flush.
* Waar is je foutafhandeling?
Ik heb een heel stuk van je code verbeterd:
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
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
<?php
session_start();
//Connect
$db = array (
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'dbname' => 'gastenboek'
);
if(!mysql_connect($db['host'], $db['user'], $db['pass']))
{
trigger_error('Fout bij verbinden: '.mysql_error());
}
elseif(!mysql_select_db($db['dbname']))
{
trigger_error('Fout bij selecteren database: '.mysql_error());
}
//Functies
function convert_time($time) {
return $time = date("d-m-Y, H:i:s", strtotime($time));
}
function select_query($tabel, $field, $limit) {
if($limit > 0) {
$query = "SELECT * FROM $tabel ORDER BY $field DESC LIMIT $limit";
}
else {
$query = "SELECT * FROM $tabel ORDER BY $field DESC";
}
return mysql_query($query);
}
define("MAX_SIZE_NAAM", 40);
define("MAX_SIZE_BERICHT", 200);
$error = array();
if($_SERVER['request_method'] == 'POST') {
if(isset($_SESSION['naam']) || isset($_SESSION['bericht'])) {
unset($_SESSION['naam']);
unset($_SESSION['bericht']);
}
$datum = date("c");
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['bericht'] = $_POST['bericht'];
if(strlen($_POST['naam']) < 3) {
$error[] = "Vul aub uw naam in!";
}
elseif(strlen($_POST['naam']) > MAX_SIZE_NAAM) {
$error[] = "Uw naam mag niet langer zijn dan 40 karakters!";
}
elseif(empty($_POST['bericht'])) {
$error[] = "Typ aub eerst een bericht!";
}
elseif(strlen($_POST['bericht']) > MAX_SIZE_BERICHT) {
$error[] = "Uw bericht mag niet langer zijn dan 200 karakters!";
}
elseif(preg_match('/[^0-9A-Za-z_\']/', $_POST['naam'])) {
$error[] = "U heeft 1 of meer karakters in uw naam die niet zijn toegestaan!<br>";
$error[] = "Gebruik alleen letters, cijfers en underscore!";
}
else {
$naam = mysql_real_escape_string(htmlentities($naam));
$bericht = mysql_real_escape_string(htmlentities($bericht));
$date = date("Y-m-d, H:i:s");
$query = "INSERT INTO items(naam, bericht, datum)VALUES('$naam', '$bericht', '$date')";
$result = mysql_query($query);
//sessie verwijderen
session_destroy();
}
}
$result = select_query("items", "datum", "5");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="Gastenboek" content="Gastenboek">
<link rel="stylesheet" type="text/css" href="style/style.css" />
<title>Simpel gastenboek</title>
</head>
<body>
<h1>Simpel gastenboek</h1>
<table width = "400">
<tr><td><h3>Berichten</h3></td></tr>
<tr><td>------------------------------------------------------------------<tr><td>
<?php
if(mysql_num_rows($result) > 0) {
for($i = 0; $i < 20 && $array = mysql_fetch_array($result); $i++) {
echo "<tr><td><b>Gepost op ".convert_time($array[3])."";
echo " door ".htmlspecialchars_decode($array[1])."</b></tr>";
echo "<tr><td> ".htmlspecialchars_decode($array[2])." </td></tr>";
echo "<tr><td>------------------------------------------------------------------<tr><td>";
}
}
else {
echo "<tr><td>Er zijn nog geen berichten geplaatst!</td></tr>";
echo "<tr><td>-----------------------------------------------------------------</td></tr>";
}
?>
</table>
<?php foreach($error as $melding) {echo $melding.'<br />'; } ?>
<form method = "post" action ="">
<table>
<tr><td><h3>Plaats een nieuw bericht</h3></td></tr>
<tr><td><b>Naam</b><br><input type = "text" name = "naam" value = "<?php if(isset($_SESSION['naam']))echo $_SESSION['naam']; ?>"></td></tr>
<tr><td><b>Bericht</b><br><textarea name = "bericht" cols = "40" rows = "6"><?php if(isset($_SESSION['bericht']))echo $_SESSION['bericht']; ?></textarea>
<br>* maximaal 200 karakters!</td></tr>
<tr><td><input type = "submit" name = "verzenden" value = "Verzenden"></td></tr>
</table>
</form>
</body>
</html>
session_start();
//Connect
$db = array (
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'dbname' => 'gastenboek'
);
if(!mysql_connect($db['host'], $db['user'], $db['pass']))
{
trigger_error('Fout bij verbinden: '.mysql_error());
}
elseif(!mysql_select_db($db['dbname']))
{
trigger_error('Fout bij selecteren database: '.mysql_error());
}
//Functies
function convert_time($time) {
return $time = date("d-m-Y, H:i:s", strtotime($time));
}
function select_query($tabel, $field, $limit) {
if($limit > 0) {
$query = "SELECT * FROM $tabel ORDER BY $field DESC LIMIT $limit";
}
else {
$query = "SELECT * FROM $tabel ORDER BY $field DESC";
}
return mysql_query($query);
}
define("MAX_SIZE_NAAM", 40);
define("MAX_SIZE_BERICHT", 200);
$error = array();
if($_SERVER['request_method'] == 'POST') {
if(isset($_SESSION['naam']) || isset($_SESSION['bericht'])) {
unset($_SESSION['naam']);
unset($_SESSION['bericht']);
}
$datum = date("c");
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['bericht'] = $_POST['bericht'];
if(strlen($_POST['naam']) < 3) {
$error[] = "Vul aub uw naam in!";
}
elseif(strlen($_POST['naam']) > MAX_SIZE_NAAM) {
$error[] = "Uw naam mag niet langer zijn dan 40 karakters!";
}
elseif(empty($_POST['bericht'])) {
$error[] = "Typ aub eerst een bericht!";
}
elseif(strlen($_POST['bericht']) > MAX_SIZE_BERICHT) {
$error[] = "Uw bericht mag niet langer zijn dan 200 karakters!";
}
elseif(preg_match('/[^0-9A-Za-z_\']/', $_POST['naam'])) {
$error[] = "U heeft 1 of meer karakters in uw naam die niet zijn toegestaan!<br>";
$error[] = "Gebruik alleen letters, cijfers en underscore!";
}
else {
$naam = mysql_real_escape_string(htmlentities($naam));
$bericht = mysql_real_escape_string(htmlentities($bericht));
$date = date("Y-m-d, H:i:s");
$query = "INSERT INTO items(naam, bericht, datum)VALUES('$naam', '$bericht', '$date')";
$result = mysql_query($query);
//sessie verwijderen
session_destroy();
}
}
$result = select_query("items", "datum", "5");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="Gastenboek" content="Gastenboek">
<link rel="stylesheet" type="text/css" href="style/style.css" />
<title>Simpel gastenboek</title>
</head>
<body>
<h1>Simpel gastenboek</h1>
<table width = "400">
<tr><td><h3>Berichten</h3></td></tr>
<tr><td>------------------------------------------------------------------<tr><td>
<?php
if(mysql_num_rows($result) > 0) {
for($i = 0; $i < 20 && $array = mysql_fetch_array($result); $i++) {
echo "<tr><td><b>Gepost op ".convert_time($array[3])."";
echo " door ".htmlspecialchars_decode($array[1])."</b></tr>";
echo "<tr><td> ".htmlspecialchars_decode($array[2])." </td></tr>";
echo "<tr><td>------------------------------------------------------------------<tr><td>";
}
}
else {
echo "<tr><td>Er zijn nog geen berichten geplaatst!</td></tr>";
echo "<tr><td>-----------------------------------------------------------------</td></tr>";
}
?>
</table>
<?php foreach($error as $melding) {echo $melding.'<br />'; } ?>
<form method = "post" action ="">
<table>
<tr><td><h3>Plaats een nieuw bericht</h3></td></tr>
<tr><td><b>Naam</b><br><input type = "text" name = "naam" value = "<?php if(isset($_SESSION['naam']))echo $_SESSION['naam']; ?>"></td></tr>
<tr><td><b>Bericht</b><br><textarea name = "bericht" cols = "40" rows = "6"><?php if(isset($_SESSION['bericht']))echo $_SESSION['bericht']; ?></textarea>
<br>* maximaal 200 karakters!</td></tr>
<tr><td><input type = "submit" name = "verzenden" value = "Verzenden"></td></tr>
</table>
</form>
</body>
</html>
Hopelijk kun je zelf een nette foutafhandeling in de query's inbouwen. Graag verwijs ik je door naar deze tutorial.
- Lees ook eens deze tutorial.
- Al die headers als je iets fout hebt gedaan moet je weghalen. Dit zorgt ervoor dat alle gegevens gewist worden.
- Regel 60-63 en regel 89,90 zijn onnodig variabelen kopiëren.
- Haal variabelen uit de quotes.
- Kijk of een query is gelukt en of er iets is verandert met mysql_affected_rows
- De uitroeptekens bij foutafhandeling komt heel opdringerig over.
- Gebruik niet elseif maar gewoon if. Het is voor de gebruiker beter om meteen alle fouten te zien.
- Maak je HTML op met divs en css, niet met tables.
- $_SERVER['PHP_SELF'] is XSS gevoelig. Vul bij action gewoon niks in.
- Kijk of een form verzonden is met
- Gebruik geen *, selecteer welke velden je wilt.
- Gebruik goede foutafhandeling en niet or die.
- Gebruik geen fetch_array maar mysql_fetch_assoc
Bedankt!
Zodra ik tijd heb zal ik er mee aan de slag gaan.
Toevoeging op 14/07/2011 19:49:51:
Ok, ik heb het één en ander veranderd aan het script.
De tables heb ik nu nog even gelaten voor wat het is.
Ik ben benieuwd naar jullie mening.
debug_mode.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
define('DEBUG_MODE', true);
if(DEBUG_MODE)
{
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
}
elseif(!DEBUG_MODE)
{
error_reporting(0);
ini_set('display_errors', 0);
}
?>
define('DEBUG_MODE', true);
if(DEBUG_MODE)
{
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
}
elseif(!DEBUG_MODE)
{
error_reporting(0);
ini_set('display_errors', 0);
}
?>
connect.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
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
<?php
$db = array (
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'dbname' => 'gastenboek'
);
$mysql = mysql_connect($db['host'], $db['user'], $db['pass']);
if(!$mysql){
$error[] = "Er kan geen verbinding met de server worden gemaakt.";
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
else {
$select_db = mysql_select_db($db['dbname']);
if(!$select_db) {
echo "Er kan geen geen verbinding met de database worden gemaakt.";
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
}
?>
$db = array (
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'dbname' => 'gastenboek'
);
$mysql = mysql_connect($db['host'], $db['user'], $db['pass']);
if(!$mysql){
$error[] = "Er kan geen verbinding met de server worden gemaakt.";
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
else {
$select_db = mysql_select_db($db['dbname']);
if(!$select_db) {
echo "Er kan geen geen verbinding met de database worden gemaakt.";
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
}
?>
functies.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//geeft de tijd terug in nederlandse notatie
function convert_time($time) {
return $time = date("d-m-Y, H:i:s", strtotime($time));
}
function select_query($tabel, $field, $limit) {
if($limit > 0) {
$query = "SELECT * FROM $tabel ORDER BY $field DESC LIMIT $limit";
}
else {
$query = "SELECT * FROM $tabel ORDER BY $field DESC";
}
return mysql_query($query);
}
?>
//geeft de tijd terug in nederlandse notatie
function convert_time($time) {
return $time = date("d-m-Y, H:i:s", strtotime($time));
}
function select_query($tabel, $field, $limit) {
if($limit > 0) {
$query = "SELECT * FROM $tabel ORDER BY $field DESC LIMIT $limit";
}
else {
$query = "SELECT * FROM $tabel ORDER BY $field DESC";
}
return mysql_query($query);
}
?>
gastenboek.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
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
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
<?php
session_start();
$error = array();
if(file_exists('include/debug_mode.php')) {
include("include/debug_mode.php");
}
else {
$fatal_error = 1;
$error[] = "Er is een fout opgetreden in het script.<br> Excuses voor het ongemak.";
}
if(file_exists('include/connect.php')) {
include("include/connect.php");
}
else {
$fatal_error = 1;
$error[] = "Er is een fout opgetreden in het script.<br> Excuses voor het ongemak.";
if(DEDUG_MODE) {
$error[] = "Het bestand \'include/connect.php\' is niet gevonden.";
}
}
if(file_exists('include/functies.php')) {
include('include/functies.php');
}
else {
$fatal_error = 1;
$error[] = "Er is een fout opgetreden in het script.<br> Excuses voor het ongemak.";
if(DEDUG_MODE) {
$error[] = "Het bestand \'include/functies.php\' is niet gevonden.";
}
}
if(isset($fatal_error) == 1) {
foreach($error as $melding) {
echo $melding."<br>";
}
exit();
}
define("MAX_SIZE_NAAM", 40);
define("MAX_SIZE_BERICHT", 200);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['bericht'] = $_POST['bericht'];
if(empty($_POST['naam'])) {
$error[] = "Vul aub uw naam in.";
}
elseif(strlen($_POST['naam']) > MAX_SIZE_NAAM) {
$error[] = "Uw naam mag niet langer zijn dan 40 karakters.";
}
elseif(preg_match('/[^0-9A-Za-z_\']/', $_POST['naam'])) {
$error[] = "U heeft 1 of meer karakters in uw naam die niet zijn toegestaan.<br>
Gebruik alleen letters, cijfers,underscore en single quotes.";
}
else {
$naam_ok = 1;
}
if(empty($_POST['bericht'])) {
$error[] = "Typ aub eerst een bericht!";
}
elseif(strlen($_POST['bericht']) > MAX_SIZE_BERICHT) {
$error[] = "Uw bericht mag niet langer zijn dan 200 karakters.";
}
else {
$bericht_ok = 1;
}
if(isset($naam_ok) == 1 && isset($bericht_ok) == 1){
$naam = mysql_real_escape_string(htmlentities($_POST['naam']));
$bericht = mysql_real_escape_string(htmlentities($_POST['bericht']));
$date = date("Y-m-d, H:i:s");
$query = "INSERT INTO items(naam, bericht, datum)VALUES('$naam', '$bericht', '$date')";
$result = mysql_query($query);
if(mysql_affected_rows() < 1) {
$error[] = "Er is een fout opgetreden tijdens het verwerken van uw bericht.<br>
Probeert u het later nog eens.";
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
//sessie verwijderen
session_destroy();
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="Gastenboek" content="Gastenboek">
<link rel="stylesheet" type="text/css" href="style/style.css" />
<title>Simpel gastenboek</title>
</head>
<body>
<h1>Simpel gastenboek</h1>
<table width = "400">
<tr><td><h3>Berichten</h3></td></tr>
<tr><td>------------------------------------------------------------------<tr><td>
<?php
$result = select_query("items", "datum", "5");
if(mysql_num_rows($result) > 0) {
for($i = 0; $i < 20 && $array = mysql_fetch_assoc($result); $i++) {
echo "<tr><td><b>Gepost op ".convert_time($array['datum'])."";
echo " door ".htmlspecialchars_decode($array['naam'])."</b></tr>";
echo "<tr><td> ".htmlspecialchars_decode($array['bericht'])." </td></tr>";
echo "<tr><td>------------------------------------------------------------------<tr><td>";
}
}
else {
echo "<tr><td>Er zijn nog geen berichten geplaatst!</td></tr>";
echo "<tr><td>-----------------------------------------------------------------</td></tr>";
//bij een lege db wordt er geen error weergegeven
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
?>
</table>
<form method = "post" action = "">
<table>
<?php
foreach($error as $melding) {
echo "<tr><td>".$melding."</td></tr>";
}
?>
<tr><td><h3>Plaats een nieuw bericht</h3></td></tr>
<tr><td><b>Naam</b><br><input type = "text" name = "naam" value = "<?php if(isset($_SESSION['naam']))echo $_SESSION['naam']; ?>"></td></tr>
<tr><td><b>Bericht</b><br><textarea name = "bericht" cols = "40" rows = "6"><?php if(isset($_SESSION['bericht']))echo $_SESSION['bericht']; ?></textarea>
<br>* maximaal 200 karakters</td></tr>
<tr><td><input type = "submit" name = "verzenden" value = "Verzenden"></td></tr>
</table>
</form>
</body>
</html>
session_start();
$error = array();
if(file_exists('include/debug_mode.php')) {
include("include/debug_mode.php");
}
else {
$fatal_error = 1;
$error[] = "Er is een fout opgetreden in het script.<br> Excuses voor het ongemak.";
}
if(file_exists('include/connect.php')) {
include("include/connect.php");
}
else {
$fatal_error = 1;
$error[] = "Er is een fout opgetreden in het script.<br> Excuses voor het ongemak.";
if(DEDUG_MODE) {
$error[] = "Het bestand \'include/connect.php\' is niet gevonden.";
}
}
if(file_exists('include/functies.php')) {
include('include/functies.php');
}
else {
$fatal_error = 1;
$error[] = "Er is een fout opgetreden in het script.<br> Excuses voor het ongemak.";
if(DEDUG_MODE) {
$error[] = "Het bestand \'include/functies.php\' is niet gevonden.";
}
}
if(isset($fatal_error) == 1) {
foreach($error as $melding) {
echo $melding."<br>";
}
exit();
}
define("MAX_SIZE_NAAM", 40);
define("MAX_SIZE_BERICHT", 200);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['bericht'] = $_POST['bericht'];
if(empty($_POST['naam'])) {
$error[] = "Vul aub uw naam in.";
}
elseif(strlen($_POST['naam']) > MAX_SIZE_NAAM) {
$error[] = "Uw naam mag niet langer zijn dan 40 karakters.";
}
elseif(preg_match('/[^0-9A-Za-z_\']/', $_POST['naam'])) {
$error[] = "U heeft 1 of meer karakters in uw naam die niet zijn toegestaan.<br>
Gebruik alleen letters, cijfers,underscore en single quotes.";
}
else {
$naam_ok = 1;
}
if(empty($_POST['bericht'])) {
$error[] = "Typ aub eerst een bericht!";
}
elseif(strlen($_POST['bericht']) > MAX_SIZE_BERICHT) {
$error[] = "Uw bericht mag niet langer zijn dan 200 karakters.";
}
else {
$bericht_ok = 1;
}
if(isset($naam_ok) == 1 && isset($bericht_ok) == 1){
$naam = mysql_real_escape_string(htmlentities($_POST['naam']));
$bericht = mysql_real_escape_string(htmlentities($_POST['bericht']));
$date = date("Y-m-d, H:i:s");
$query = "INSERT INTO items(naam, bericht, datum)VALUES('$naam', '$bericht', '$date')";
$result = mysql_query($query);
if(mysql_affected_rows() < 1) {
$error[] = "Er is een fout opgetreden tijdens het verwerken van uw bericht.<br>
Probeert u het later nog eens.";
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
//sessie verwijderen
session_destroy();
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="Gastenboek" content="Gastenboek">
<link rel="stylesheet" type="text/css" href="style/style.css" />
<title>Simpel gastenboek</title>
</head>
<body>
<h1>Simpel gastenboek</h1>
<table width = "400">
<tr><td><h3>Berichten</h3></td></tr>
<tr><td>------------------------------------------------------------------<tr><td>
<?php
$result = select_query("items", "datum", "5");
if(mysql_num_rows($result) > 0) {
for($i = 0; $i < 20 && $array = mysql_fetch_assoc($result); $i++) {
echo "<tr><td><b>Gepost op ".convert_time($array['datum'])."";
echo " door ".htmlspecialchars_decode($array['naam'])."</b></tr>";
echo "<tr><td> ".htmlspecialchars_decode($array['bericht'])." </td></tr>";
echo "<tr><td>------------------------------------------------------------------<tr><td>";
}
}
else {
echo "<tr><td>Er zijn nog geen berichten geplaatst!</td></tr>";
echo "<tr><td>-----------------------------------------------------------------</td></tr>";
//bij een lege db wordt er geen error weergegeven
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
?>
</table>
<form method = "post" action = "">
<table>
<?php
foreach($error as $melding) {
echo "<tr><td>".$melding."</td></tr>";
}
?>
<tr><td><h3>Plaats een nieuw bericht</h3></td></tr>
<tr><td><b>Naam</b><br><input type = "text" name = "naam" value = "<?php if(isset($_SESSION['naam']))echo $_SESSION['naam']; ?>"></td></tr>
<tr><td><b>Bericht</b><br><textarea name = "bericht" cols = "40" rows = "6"><?php if(isset($_SESSION['bericht']))echo $_SESSION['bericht']; ?></textarea>
<br>* maximaal 200 karakters</td></tr>
<tr><td><input type = "submit" name = "verzenden" value = "Verzenden"></td></tr>
</table>
</form>
</body>
</html>
Gewijzigd op 15/07/2011 02:51:38 door Danny Dillema
bump
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
if(file_exists('include/functies.php')) {
include('include/functies.php');
}
else {
$fatal_error = 1;
$error[] = "Er is een fout opgetreden in het script.<br> Excuses voor het ongemak.";
if(DEDUG_MODE) {
$error[] = "Het bestand \'include/functies.php\' is niet gevonden.";
}
}
include('include/functies.php');
}
else {
$fatal_error = 1;
$error[] = "Er is een fout opgetreden in het script.<br> Excuses voor het ongemak.";
if(DEDUG_MODE) {
$error[] = "Het bestand \'include/functies.php\' is niet gevonden.";
}
}
Goeie foutafhandeling is goed, maar dit is wel wat overdreven. Foutafhandeling goed hebben heeft twee doelen: je kan makkelijk zien wat er precies aan de hand is, en de bezoeker/gebruiker kan zien dat het niet zijn schuld is. De kans dat een include statement mislukt is nogal beperkt, en aangezien je die statements een heleboel gaat gebruiken lijkt het mij de moeite niet waard om per statement zo'n hele constructie eromheen te zetten.
Als je script zo afhankelijk is van dat externe bestand, gebruik dan require. Dan stopt PHP er vanzelf mee als het mislukt.
Als je dan ook in die uiterst zeldzame gevallen nog je gebruiker op de hoogte wilt stellen, kijk eens naar set_error_handler.
isset geeft al true of false terug, controleren of true true is, wat dan weer true oplevert, heeft geen zin. Gebruik geen isset() om te kijken of iets waar of niet waar is, alleen om te kijken of iets bestaat in een array zoals in $_POST. Sommige servers hebben nog een oude configuratie waarbij $naam_ok==1 ook waar is wanneer je je script aanroept als script.php?naam_ok=1. In jouw script zou je dan alsnog een berichtje kunnen plaatsen.
Code (php)
1
2
2
$naam = mysql_real_escape_string(htmlentities($_POST['naam']));
$bericht = mysql_real_escape_string(htmlentities($_POST['bericht']));
$bericht = mysql_real_escape_string(htmlentities($_POST['bericht']));
htmlentities zou ik pas doen bij het weergeven. Sla je invoer zo rauw mogelijk op, dan kan je je data ook nog voor andere doeleinden gaan gebruiken waar html entities alleen maar in de weg zitten. (Zoals een RSS feed die je maakt met de XML functies. Die zetten zelf al entities om.)
Kan ook gelijk in je query:
Als je nog een ander script had draaien op die website die ook sessies gebruikte, zijn die ook weg. Gewoon unset($_SESSION['naam'], $_SESSION['bericht']) is beter in dit geval.
Waarom een for-lus wanneer je maar 5 resultaten ophaalt doordat je al een LIMIT in je query specificeert? Gewoon simpel while($array = mysql_fetch_assoc($result)) is de normale manier.
Wat? htmlspecialchars_decode?! Waarom! Juist liever de andere kant op: rauw uit de database halen (en dus rauw erin stoppen) en dan hier htmlspecialchars gebruiken om ervoor te zorgen dat mensen geen html in hun naam gaan gebruiken.
Als ik een "quote" in m'n naam heb zitten gaat het hier mis omdat ik het value-attribuut afsluit.
Klein detail waar je vast niet tegenaan gaat lopen:
file_exists en include zoeken niet op dezelfde plek naar het bestand. file_exists kijkt alleen vanaf het pad waar je script draait (getcwd) terwijl include ook naar je include_path kijkt.
Gewijzigd op 16/07/2011 10:35:48 door Jelmer -
Bedankt voor je input.
Toevoeging op 18/07/2011 18:01:08:
Zie hier het eindresultaat.
http://dannydillema.woelmuis.nl/index.php
En de nieuwe 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
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
<?php
session_start();
$error = array();
include("include/debug_mode.php");
include("include/connect.php");
include('include/functies.php');
define("MAX_SIZE_NAAM", 40);
define("MAX_SIZE_BERICHT", 200);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['bericht'] = $_POST['bericht'];
if(empty($_POST['naam'])) {
$error[] = "Vul aub uw naam in.";
}
elseif(strlen($_POST['naam']) > MAX_SIZE_NAAM) {
$error[] = "Uw naam mag niet langer zijn dan 40 karakters.";
}
elseif(preg_match('/[^0-9A-Za-z_\']/', $_POST['naam'])) {
$error[] = "U heeft 1 of meer karakters in uw naam die niet zijn toegestaan.<br>
Gebruik alleen letters, cijfers,underscore en single quotes.";
}
else {
$naam_ok = 1;
}
if(empty($_POST['bericht'])) {
$error[] = "Typ aub eerst een bericht!";
}
elseif(strlen($_POST['bericht']) > MAX_SIZE_BERICHT) {
$error[] = "Uw bericht mag niet langer zijn dan 200 karakters.";
}
else {
$bericht_ok = 1;
}
if($naam_ok == 1 && $bericht_ok == 1){
$naam = mysql_real_escape_string($_POST['naam']);
$bericht = mysql_real_escape_string($_POST['bericht']);
$query = "INSERT INTO items(naam, bericht, datum)VALUES('$naam', '$bericht', NOW())";
$result = mysql_query($query);
if(mysql_affected_rows() < 1) {
$error[] = "Er is een fout opgetreden tijdens het verwerken van uw bericht.<br>
Probeert u het later nog eens.";
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
//sessie verwijderen
unset($_SESSION['naam'], $_SESSION['bericht']);
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="Gastenboek" content="Gastenboek">
<link rel="stylesheet" type="text/css" href="style/style.css">
<title>Simpel gastenboek</title>
</head>
<body>
<div id = "gastenboek_wrapper">
<h1>Laat een berichtje achter</h1>
<?php
$result = select_query("items", "datum", "5");
if(mysql_num_rows($result) > 0) {
while($array = mysql_fetch_assoc($result)) {
echo "
<div id = 'post'>
<div id = 'post_info'>
Gepost op ".convert_time($array['datum'])."
<br>door ".htmlentities($array['naam'])."<br>
</div>
<div id = 'bericht'>"
.htmlentities($array['bericht'])."<br><br>
</div>
</div>
";
}
echo "<div id = 'bericht_lijn_onder'></div>";
}
else {
echo "<br>Er zijn nog geen berichten geplaatst.";
//bij een lege db wordt er geen error weergegeven
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
foreach($error as $melding) {
echo "<div id = 'error'><br>".$melding."</div>";
}
?>
<form method = "post" action = "">
<h2>Plaats een nieuw bericht</h2>
<b>Naam</b><br><input type = "text" name = "naam" value = "<?php if(isset($_SESSION['naam']))echo $_SESSION['naam']; ?>"><br>
<b>Bericht</b><br><textarea name = "bericht" cols = "40" rows = "4"><?php if(isset($_SESSION['bericht']))echo $_SESSION['bericht']; ?></textarea><br>
* maximaal 200 karakters<br>
<input type = "submit" name = "verzenden" value = "Verzenden" class = "button">
</form>
</div>
</body>
</html>
session_start();
$error = array();
include("include/debug_mode.php");
include("include/connect.php");
include('include/functies.php');
define("MAX_SIZE_NAAM", 40);
define("MAX_SIZE_BERICHT", 200);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['bericht'] = $_POST['bericht'];
if(empty($_POST['naam'])) {
$error[] = "Vul aub uw naam in.";
}
elseif(strlen($_POST['naam']) > MAX_SIZE_NAAM) {
$error[] = "Uw naam mag niet langer zijn dan 40 karakters.";
}
elseif(preg_match('/[^0-9A-Za-z_\']/', $_POST['naam'])) {
$error[] = "U heeft 1 of meer karakters in uw naam die niet zijn toegestaan.<br>
Gebruik alleen letters, cijfers,underscore en single quotes.";
}
else {
$naam_ok = 1;
}
if(empty($_POST['bericht'])) {
$error[] = "Typ aub eerst een bericht!";
}
elseif(strlen($_POST['bericht']) > MAX_SIZE_BERICHT) {
$error[] = "Uw bericht mag niet langer zijn dan 200 karakters.";
}
else {
$bericht_ok = 1;
}
if($naam_ok == 1 && $bericht_ok == 1){
$naam = mysql_real_escape_string($_POST['naam']);
$bericht = mysql_real_escape_string($_POST['bericht']);
$query = "INSERT INTO items(naam, bericht, datum)VALUES('$naam', '$bericht', NOW())";
$result = mysql_query($query);
if(mysql_affected_rows() < 1) {
$error[] = "Er is een fout opgetreden tijdens het verwerken van uw bericht.<br>
Probeert u het later nog eens.";
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
//sessie verwijderen
unset($_SESSION['naam'], $_SESSION['bericht']);
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="Gastenboek" content="Gastenboek">
<link rel="stylesheet" type="text/css" href="style/style.css">
<title>Simpel gastenboek</title>
</head>
<body>
<div id = "gastenboek_wrapper">
<h1>Laat een berichtje achter</h1>
<?php
$result = select_query("items", "datum", "5");
if(mysql_num_rows($result) > 0) {
while($array = mysql_fetch_assoc($result)) {
echo "
<div id = 'post'>
<div id = 'post_info'>
Gepost op ".convert_time($array['datum'])."
<br>door ".htmlentities($array['naam'])."<br>
</div>
<div id = 'bericht'>"
.htmlentities($array['bericht'])."<br><br>
</div>
</div>
";
}
echo "<div id = 'bericht_lijn_onder'></div>";
}
else {
echo "<br>Er zijn nog geen berichten geplaatst.";
//bij een lege db wordt er geen error weergegeven
if(DEBUG_MODE) {
$error[] = "<br>".mysql_error();
}
}
foreach($error as $melding) {
echo "<div id = 'error'><br>".$melding."</div>";
}
?>
<form method = "post" action = "">
<h2>Plaats een nieuw bericht</h2>
<b>Naam</b><br><input type = "text" name = "naam" value = "<?php if(isset($_SESSION['naam']))echo $_SESSION['naam']; ?>"><br>
<b>Bericht</b><br><textarea name = "bericht" cols = "40" rows = "4"><?php if(isset($_SESSION['bericht']))echo $_SESSION['bericht']; ?></textarea><br>
* maximaal 200 karakters<br>
<input type = "submit" name = "verzenden" value = "Verzenden" class = "button">
</form>
</div>
</body>
</html>
Gewijzigd op 18/07/2011 18:14:02 door Danny Dillema