UPDATE problemen
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
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
<?
include("config.php");
if (isset($_POST['submit'])) {
if ($_POST['submit'] == "Toevoegen") {
$titel = $_POST['tt'];
$bericht = $_POST['t'];
$datumupdate = date("Y-m-d");
$tijdupdate = date("H:i:s");
$bericht_id = $_POST['bericht_id'];
////////////////////////////////////////////////////////
$titel = addslashes( $titel);
$titel = strip_tags($titel);
$titel = htmlentities( $titel);
$titel = htmlspecialchars( $titel);
////////////////////////////////////////////////////////
$bericht = addslashes($bericht);
$bericht = strip_tags($bericht);
$bericht = htmlentities($bericht);
$bericht = htmlspecialchars($bericht);
/////////////////////////////////////////////////////////
define("MINIMUMAANTAL_TEKENS", 4);
define("MAXIMUMAANTAL_WOORDEN", 500);
$aantal_tekens = strlen($bericht);
$aantal_woorden = str_word_count($bericht);
if (($aantal_tekens >= MINIMUMAANTAL_TEKENS) and ($aantal_woorden <= MAXIMUMAANTAL_WOORDEN)) {
$sql = "UPDATE prikbord SET titel='$titel', tekst='$bericht' , datumupdate='$datumupdate', tijdupdate='$tijdupdate' WHERE bericht_id ='".$_GET['bericht_id']."'";
$verbinding = mysql_connect($db_host, $db_db, $db_pass) or die(mysql_error());
mysql_select_db("gbdb") or die(mysql_error());
$toegevoegd = mysql_query($sql) or die(mysql_error());
mysql_close($verbinding);
// Browser omleiden naar het gastenboek
// als de bijdrage is toegevoegd:
if ($toegevoegd) {
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/gastenboek.php");
exit;
}
} else {
// Foutmelding weergeven:
if (!($aantal_tekens >= MINIMUMAANTAL_TEKENS)) {
$melding .= "De tekst is te kort.";
}
if (!($aantal_woorden <= MAXIMUMAANTAL_WOORDEN)) {
$melding .= "Uw tekst telt " . $aantal_woorden . " woorden. ";
$melding .= "Kort de tekst in tot maximaal " . MAXIMUMAANTAL_WOORDEN . " woorden. ";
}
}
}
}
// Een eventuele foutmelding opmaken als een alinea:
if (strlen(trim($melding)) > 1) {
$melding = '<p class="w">' . $melding . "</p>\n";
}else{
$sqll = "SELECT * FROM gastenboek WHERE bericht_id ='".$_GET['bericht_id']."'";
$verbinding = mysql_connect($db_host, $db_db, $db_pass) or die(mysql_error());
mysql_select_db("gbdb") or die(mysql_error());
$resultaat = mysql_query($sqll) or die(mysql_error());
while ($rij = mysql_fetch_assoc($resultaat)) {
$titel = $rij["titel"];
$bericht = $rij["tekst"];
?>
include("config.php");
if (isset($_POST['submit'])) {
if ($_POST['submit'] == "Toevoegen") {
$titel = $_POST['tt'];
$bericht = $_POST['t'];
$datumupdate = date("Y-m-d");
$tijdupdate = date("H:i:s");
$bericht_id = $_POST['bericht_id'];
////////////////////////////////////////////////////////
$titel = addslashes( $titel);
$titel = strip_tags($titel);
$titel = htmlentities( $titel);
$titel = htmlspecialchars( $titel);
////////////////////////////////////////////////////////
$bericht = addslashes($bericht);
$bericht = strip_tags($bericht);
$bericht = htmlentities($bericht);
$bericht = htmlspecialchars($bericht);
/////////////////////////////////////////////////////////
define("MINIMUMAANTAL_TEKENS", 4);
define("MAXIMUMAANTAL_WOORDEN", 500);
$aantal_tekens = strlen($bericht);
$aantal_woorden = str_word_count($bericht);
if (($aantal_tekens >= MINIMUMAANTAL_TEKENS) and ($aantal_woorden <= MAXIMUMAANTAL_WOORDEN)) {
$sql = "UPDATE prikbord SET titel='$titel', tekst='$bericht' , datumupdate='$datumupdate', tijdupdate='$tijdupdate' WHERE bericht_id ='".$_GET['bericht_id']."'";
$verbinding = mysql_connect($db_host, $db_db, $db_pass) or die(mysql_error());
mysql_select_db("gbdb") or die(mysql_error());
$toegevoegd = mysql_query($sql) or die(mysql_error());
mysql_close($verbinding);
// Browser omleiden naar het gastenboek
// als de bijdrage is toegevoegd:
if ($toegevoegd) {
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/gastenboek.php");
exit;
}
} else {
// Foutmelding weergeven:
if (!($aantal_tekens >= MINIMUMAANTAL_TEKENS)) {
$melding .= "De tekst is te kort.";
}
if (!($aantal_woorden <= MAXIMUMAANTAL_WOORDEN)) {
$melding .= "Uw tekst telt " . $aantal_woorden . " woorden. ";
$melding .= "Kort de tekst in tot maximaal " . MAXIMUMAANTAL_WOORDEN . " woorden. ";
}
}
}
}
// Een eventuele foutmelding opmaken als een alinea:
if (strlen(trim($melding)) > 1) {
$melding = '<p class="w">' . $melding . "</p>\n";
}else{
$sqll = "SELECT * FROM gastenboek WHERE bericht_id ='".$_GET['bericht_id']."'";
$verbinding = mysql_connect($db_host, $db_db, $db_pass) or die(mysql_error());
mysql_select_db("gbdb") or die(mysql_error());
$resultaat = mysql_query($sqll) or die(mysql_error());
while ($rij = mysql_fetch_assoc($resultaat)) {
$titel = $rij["titel"];
$bericht = $rij["tekst"];
?>
<!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" lang="nl">
<head>
<title></title>
</head>
<body>
<form action="gb_edit.php" method="post" name="form" onsubmit="return Len();">
<div align="center">
<textarea accesskey="t" rows="20" cols="82" id="t" name="t" onselect="saveC(this);" onclick="saveC(this);" onkeyup="saveC(this);"></textarea>
<input accesskey="n" id="t" name="tt" type="text" size="80" maxlength="50" value="">
<input class="knop" name="submit" type="submit" value="Wissen">
<input class="knop" name="submit" type="submit" value="Toevoegen">
</form>
</body>
</html>
-----------------------------------------------------------------
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
<?
/* MySQL-query voor het maken van de tabel 'gastenboek':
CREATE TABLE `prikbord` (
`bericht_id` INT NOT NULL AUTO_INCREMENT,
`datum` DATE NOT NULL,
`tijd` TIME NOT NULL,
`titel` VARCHAR(255),
`tekst` TEXT NOT NULL,
`naam` VARCHAR(255),
`datumupdate` DATE,
`tijdupdate` TIME,
PRIMARY KEY (`bericht_id`),
INDEX (`datum`, `tijd`)
);
*/ ?>
/* MySQL-query voor het maken van de tabel 'gastenboek':
CREATE TABLE `prikbord` (
`bericht_id` INT NOT NULL AUTO_INCREMENT,
`datum` DATE NOT NULL,
`tijd` TIME NOT NULL,
`titel` VARCHAR(255),
`tekst` TEXT NOT NULL,
`naam` VARCHAR(255),
`datumupdate` DATE,
`tijdupdate` TIME,
PRIMARY KEY (`bericht_id`),
INDEX (`datum`, `tijd`)
);
*/ ?>
ik werk nog niet zo lang met php dus weet der weinig van ziet iemand wat ik fout doe?
Gewijzigd op 01/01/1970 01:00:00 door Mark Dijkstra
Tevens nog iets aan beveiliging doen, een GET mag nooit onbeveiligd in een query staan. Dat is vragen om SQL-injection.
DATE en TIME vormen samen een DATETIME, wel zo handig! Scheelt weer een veld in de tabel.
de beveliging komt nog wel sinds dat ik een noob ben doe ik dat wel op het laaste :)
date en time kan samen dat weet ik maar ik vind het zo makelijker(voor nu) ;)
thanks