Update query lukt niet...
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
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
<?php
if (isset($_POST["bevestiging"])){
// query samenstellen
echo $query="UPDATE multimedia SET
(
titel, artiest, genre, datum, trefwoorden, minuten, sleevenr, jaar, door
)
VALUES
(
'" . mysql_real_escape_string ($_POST['titel']) . "',
'" . mysql_real_escape_string ($_POST['artiest']) . "',
'" . mysql_real_escape_string ($_POST['genre']) . "',
NOW(),
'" . mysql_real_escape_string ($_POST['trefwoorden']) . "',
'" . mysql_real_escape_string ($_POST['minuten']) . "',
'" . mysql_real_escape_string ($_POST['sleevenr']) . "',
'" . mysql_real_escape_string ($_POST['jaar']) . "',
'" . mysql_real_escape_string ($_POST['door']) . "',
WHERE id=" .$_POST["id"] ."
)
";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
echo("De volgende opdracht is uitgevoerd: <b>$query</b><br>\n");
if ($result){
echo ("<SCRIPT language=\"JavaScript\">alert(\"De DVD is sucessvol gewijzigd!\")</SCRIPT>");
}
}else{
$query="SELECT * FROM multimedia WHERE id=" . $_GET["id"];
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
?>
...
<?php
while ($rij = mysql_fetch_array($result)){
$ti = $rij['titel'];
$ar = $rij['artiest'];
$sl = $rij['sleevenr'];
$mi = $rij['minuten'] ;
$ja = $rij['jaar'] ;
$do = $rij['door'] ;
$tr = $rij['trefwoorden'] ;
$ge = $rij['genre'] ;
}?>
<form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post">
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="id" value="<?php echo($_GET["id"]);?>">
<strong>Sleeve nummer</strong><span class="style2">*</span><br>
<input name="sleevenr" type="text" id="sleevenr" value="<?php echo($sl);?>" size="22" maxlength="11">
<br>
<strong>Title van de DVD</strong><span class="style2">*</span><br>
<input name="titel" type="text" id="titel" value="<?php echo($ti);?>" size="22" maxlength="255">
<br>
<strong>Geregisseerd door:</strong><span class="style2">*</span><br>
<input name="door" type="text" id="door" value="<?php echo($do);?>" size="22" maxlength="255">
<br>
<strong>Acteurs:</strong><span class="style2">*</span><br>
<input name="artiest" type="text" id="artiest" value="<?php echo($ar);?>" size="22" maxlength="255">
<br>
<strong>Aantal Minuten</strong><span class="style2">*</span><br>
<input name="minuten" type="text" id="minuten" value="<?php echo($mi);?>" size="22" maxlength="11">
<br>
<strong>Jaar uitgebracht:</strong><span class="style2">*</span><br>
<input name="jaar" type="text" id="jaar" value="<?php echo($ja);?>" size="22" maxlength="255">
<br>
<strong>Genre</strong><span class="style2">*</span><br>
<input name='genre' type="text" id="genre" value="<?php echo($ge);?>" size="22" maxlength="255">
<br>
<strong>Synopsis</strong><span class="style2">*</span><br>
<textarea name="trefwoorden" cols="60" rows="15" id="trefwoorden" value="<?php echo($tr);?>"></textarea>
<input type="submit" name="Submit" value="Bijwerken">
<input type="reset" name="Reset" value="Wis formulier">
</p>
</form>
<?php
}
?>
if (isset($_POST["bevestiging"])){
// query samenstellen
echo $query="UPDATE multimedia SET
(
titel, artiest, genre, datum, trefwoorden, minuten, sleevenr, jaar, door
)
VALUES
(
'" . mysql_real_escape_string ($_POST['titel']) . "',
'" . mysql_real_escape_string ($_POST['artiest']) . "',
'" . mysql_real_escape_string ($_POST['genre']) . "',
NOW(),
'" . mysql_real_escape_string ($_POST['trefwoorden']) . "',
'" . mysql_real_escape_string ($_POST['minuten']) . "',
'" . mysql_real_escape_string ($_POST['sleevenr']) . "',
'" . mysql_real_escape_string ($_POST['jaar']) . "',
'" . mysql_real_escape_string ($_POST['door']) . "',
WHERE id=" .$_POST["id"] ."
)
";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
echo("De volgende opdracht is uitgevoerd: <b>$query</b><br>\n");
if ($result){
echo ("<SCRIPT language=\"JavaScript\">alert(\"De DVD is sucessvol gewijzigd!\")</SCRIPT>");
}
}else{
$query="SELECT * FROM multimedia WHERE id=" . $_GET["id"];
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
?>
...
<?php
while ($rij = mysql_fetch_array($result)){
$ti = $rij['titel'];
$ar = $rij['artiest'];
$sl = $rij['sleevenr'];
$mi = $rij['minuten'] ;
$ja = $rij['jaar'] ;
$do = $rij['door'] ;
$tr = $rij['trefwoorden'] ;
$ge = $rij['genre'] ;
}?>
<form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post">
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="id" value="<?php echo($_GET["id"]);?>">
<strong>Sleeve nummer</strong><span class="style2">*</span><br>
<input name="sleevenr" type="text" id="sleevenr" value="<?php echo($sl);?>" size="22" maxlength="11">
<br>
<strong>Title van de DVD</strong><span class="style2">*</span><br>
<input name="titel" type="text" id="titel" value="<?php echo($ti);?>" size="22" maxlength="255">
<br>
<strong>Geregisseerd door:</strong><span class="style2">*</span><br>
<input name="door" type="text" id="door" value="<?php echo($do);?>" size="22" maxlength="255">
<br>
<strong>Acteurs:</strong><span class="style2">*</span><br>
<input name="artiest" type="text" id="artiest" value="<?php echo($ar);?>" size="22" maxlength="255">
<br>
<strong>Aantal Minuten</strong><span class="style2">*</span><br>
<input name="minuten" type="text" id="minuten" value="<?php echo($mi);?>" size="22" maxlength="11">
<br>
<strong>Jaar uitgebracht:</strong><span class="style2">*</span><br>
<input name="jaar" type="text" id="jaar" value="<?php echo($ja);?>" size="22" maxlength="255">
<br>
<strong>Genre</strong><span class="style2">*</span><br>
<input name='genre' type="text" id="genre" value="<?php echo($ge);?>" size="22" maxlength="255">
<br>
<strong>Synopsis</strong><span class="style2">*</span><br>
<textarea name="trefwoorden" cols="60" rows="15" id="trefwoorden" value="<?php echo($tr);?>"></textarea>
<input type="submit" name="Submit" value="Bijwerken">
<input type="reset" name="Reset" value="Wis formulier">
</p>
</form>
<?php
}
?>
maar hij doet hem niet udaten.. als ik hem echo dan en naar me phpmyadmin gooi krijg ik de volgende fout:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( titel, artiest, genre, datum, trefwoorden, minuten, sleevenr, jaar, door ) VAL' at line 1
ik weet het echt niet meer.. iemand?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
UPDATE
tabelnaam
SET
kolom = 'waarde',
andere_kolom = 'nog een waarde'
WHERE
id = 12;
tabelnaam
SET
kolom = 'waarde',
andere_kolom = 'nog een waarde'
WHERE
id = 12;
Tip: Echo bij een foutmelding ook altijd even de query, dan krijg je de daadwerkelijke query te zien en niet het PHP-verhaal waarmee je de query aanmaakt.
Watr mij opvalt is dat je overal netjes mysql_real_escape_string gebruikt, maar bij de laatste id niet.
Jurgen schreef op 28.02.2008 18:01:
Er gaat toch niemand SQL-injection op het id loslaten, of wel dan???Watr mij opvalt is dat je overal netjes mysql_real_escape_string gebruikt, maar bij de laatste id niet.
Userinput mag je nooooit vertrouwen.
ja zat inderdaad helemaal fout :S..
nou opbouw gemaakt en die werkt :D
thnx.
Jurgen schreef op 28.02.2008 18:01:
Watr mij opvalt is dat je overal netjes mysql_real_escape_string gebruikt, maar bij de laatste id niet.
Bij strings gebruik je mysql_real_escape_string, bij numerieke waarden kun je met ctype_digit checken.