fout bij updaten
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
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
<?PHP
require("../config.php");
$id = $_GET["id"];
$query = mysql_query("SELECT menu_naam,menu_titel,menu_content FROM menu WHERE id = '".$id."'");
$rij = mysql_fetch_object($query);
$paginanaam = $rij->menu_naam;
$paginatitel = $rij->menu_titel;
$content = $rij->menu_content;
echo
"<form name=\"form\" method=\"post\" action=\"\">
<table width=\"700\">
<tr>
<td width=\"160\"><b>Pagina naam:<b></td>
<td><input type=\"text\" name=\"menu_naam\" value=\"$paginanaam\" size=\"93\"></td>
</tr>
<tr>
<td width=\"160\"><b>Pagina titel:<b></td>
<td width=\"160\"><input type=\"text\" name=\"menu_titel\" value=\"$paginatitel\" size=\"93\"></td>
</tr>
<tr>
<td width=\"160\"><b>Content:<b><td>
<textarea name=\"menu_content\" rows=\"15\" cols=\"80\" style=\"width: 80%;\">
$content
</textarea><br>
<input type=\"submit\" name=\"submit\" value=\"wijzigen\">
</table></form>";
if(isset($_POST['submit']))
{
if(isset($_GET['id']) && !empty($_GET['id']))
{
if(isset($_POST['menu_naam']) && !empty($_POST['menu_naam']))
{
$query = "UPDATE menu SET menu_naam='".$_POST['menu_naam']."' WHERE id='".$_GET['id']."' LIMIT 1";
$res = mysql_query($query) or die ("Error: " . mysql_error());
// succes bericht kan hier...
}
else
{
echo 'Er ging iets niet goed met het updaten van het systeem';
exit();
}
}
else
{
echo 'Error: Sorry er ging iets fout bij het mee geven van het ID';
}
}
if(isset($_POST['submit']))
{
if(isset($_GET['id']) && !empty($_GET['id']))
{
if(isset($_POST['menu_content']) && !empty($_POST['menu_content']))
{
$query = "UPDATE menu SET menu_content='".$_POST['menu_content']."' WHERE id='".$_GET['id']."' LIMIT 1";
$res = mysql_query($query) or die ("Error: " . mysql_error());
// succes bericht kan hier...
}
else
{
echo '';
exit();
}
}
else
{
echo '';
}
}
if(isset($_POST['submit']))
{
if(isset($_GET['id']) && !empty($_GET['id']))
{
if(isset($_POST['menu_titel']) && !empty($_POST['menu_titel']))
{
$query = "UPDATE menu SET menu_titel='".$_POST['menu_titel']."' WHERE id='".$_GET['id']."' LIMIT 1";
$res = mysql_query($query) or die ("Error: " . mysql_error());
}
else
{
echo '';
exit();
}
}
else
{
echo '';
}
}
echo'<a href="index.php">terug</a>';
?>
</div>
</div>
</body>
</html>
require("../config.php");
$id = $_GET["id"];
$query = mysql_query("SELECT menu_naam,menu_titel,menu_content FROM menu WHERE id = '".$id."'");
$rij = mysql_fetch_object($query);
$paginanaam = $rij->menu_naam;
$paginatitel = $rij->menu_titel;
$content = $rij->menu_content;
echo
"<form name=\"form\" method=\"post\" action=\"\">
<table width=\"700\">
<tr>
<td width=\"160\"><b>Pagina naam:<b></td>
<td><input type=\"text\" name=\"menu_naam\" value=\"$paginanaam\" size=\"93\"></td>
</tr>
<tr>
<td width=\"160\"><b>Pagina titel:<b></td>
<td width=\"160\"><input type=\"text\" name=\"menu_titel\" value=\"$paginatitel\" size=\"93\"></td>
</tr>
<tr>
<td width=\"160\"><b>Content:<b><td>
<textarea name=\"menu_content\" rows=\"15\" cols=\"80\" style=\"width: 80%;\">
$content
</textarea><br>
<input type=\"submit\" name=\"submit\" value=\"wijzigen\">
</table></form>";
if(isset($_POST['submit']))
{
if(isset($_GET['id']) && !empty($_GET['id']))
{
if(isset($_POST['menu_naam']) && !empty($_POST['menu_naam']))
{
$query = "UPDATE menu SET menu_naam='".$_POST['menu_naam']."' WHERE id='".$_GET['id']."' LIMIT 1";
$res = mysql_query($query) or die ("Error: " . mysql_error());
// succes bericht kan hier...
}
else
{
echo 'Er ging iets niet goed met het updaten van het systeem';
exit();
}
}
else
{
echo 'Error: Sorry er ging iets fout bij het mee geven van het ID';
}
}
if(isset($_POST['submit']))
{
if(isset($_GET['id']) && !empty($_GET['id']))
{
if(isset($_POST['menu_content']) && !empty($_POST['menu_content']))
{
$query = "UPDATE menu SET menu_content='".$_POST['menu_content']."' WHERE id='".$_GET['id']."' LIMIT 1";
$res = mysql_query($query) or die ("Error: " . mysql_error());
// succes bericht kan hier...
}
else
{
echo '';
exit();
}
}
else
{
echo '';
}
}
if(isset($_POST['submit']))
{
if(isset($_GET['id']) && !empty($_GET['id']))
{
if(isset($_POST['menu_titel']) && !empty($_POST['menu_titel']))
{
$query = "UPDATE menu SET menu_titel='".$_POST['menu_titel']."' WHERE id='".$_GET['id']."' LIMIT 1";
$res = mysql_query($query) or die ("Error: " . mysql_error());
}
else
{
echo '';
exit();
}
}
else
{
echo '';
}
}
echo'<a href="index.php">terug</a>';
?>
</div>
</div>
</body>
</html>
dit is de code en de fout die ik steeds krijg is
Code (php)
1
Error: 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 's, briefpapier, visitekaartjes, enveloppen, bonnenblocks, leaflets, notitieblock' at line 1
maar ik snap er geen hout van
Zo te zien zijn je databasenamen niet helemaal correct, omdat je een apostrophe gebruikt?
hoe moet ik dat oplossen dan ?
Aangezien je query of error niet refereert naar een query in het script welke hier staat.
althans, ik kan nergens briefpapier, visitekaartjes en wat dan ook vinden.. Dus wellicht is het handig even je ../config.php bestand hier neer te zetten.
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
ob_start();
//Connectie gegevens
$host = "localhost"; //Meestal local host
$user = "root"; //Username van je database
$pass = ""; //Password van je database
$data = "menu_cms"; //Je database
//De connectie
mysql_connect($host, $user, $pass) or die($mysql_con);
mysql_select_db($data) or die($mysql_dat);
?>
ob_start();
//Connectie gegevens
$host = "localhost"; //Meestal local host
$user = "root"; //Username van je database
$pass = ""; //Password van je database
$data = "menu_cms"; //Je database
//De connectie
mysql_connect($host, $user, $pass) or die($mysql_con);
mysql_select_db($data) or die($mysql_dat);
?>
Gewijzigd op 01/01/1970 01:00:00 door Niels van Dijk
Beveilig met mysql_real_escape_string().
als ik vragn mag
Code (php)
1
2
3
4
5
2
3
4
5
<?php
addslashes($_POST['jeveldnaam'];
# of
mysql_real_escape_string($_POST['jeveldnaam']);
?>
addslashes($_POST['jeveldnaam'];
# of
mysql_real_escape_string($_POST['jeveldnaam']);
?>
Quote:
Nee, daar is addslashes in dit geval niet voor bedoeld. Het wordt zelfs sterk afgeraden om dat te doen. Addslashes houdt bijvoorbeeld totaal geen rekening met de connectie charset en instellingen van je database. Wat je best wel eens wat extra slashes in je database kan opleveren als jij braaf denkt te zijn geweest door MySQL op te voeden bijvoorbeeld :)addslashes($_POST['jeveldnaam']);
Tog met addslashes in db zetten en stripslashes uitlezen? ..
Quote:
Nee... Ik denk dat je een beetje de clue van het verhaal gemist hebt.Tog met addslashes in db zetten en stripslashes uitlezen? ..
Het idee is dit:
Stel, we hebben een tabel. Met de kolommen naam, wachtwoord en e-mail. Dus bijvoorbeeld deze structuur:
CREATE TABLE users (
id INT UNSIGNED AUTO_INCREMENT,
name VARCHAR (200) NOT NULL,
pass VARCHAR (40) NOT NULL,
mail VARCHAR(200) NOT NULL
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
Nu kun je daar met PHP waarden in stoppen, bijvoorbeeld:
Code (php)
1
2
3
2
3
<?php
mysql_query('INSERT INTO users (name, pass, mail) VALUES (\''.$_POST['name'].'\', \''.sha1($_POST['pass']).'\', \''.$_POST['mail'].'\')');
?>
mysql_query('INSERT INTO users (name, pass, mail) VALUES (\''.$_POST['name'].'\', \''.sha1($_POST['pass']).'\', \''.$_POST['mail'].'\')');
?>
Stel dat jij nu degene bent die zich aanmeldt, kan dit resulteren in:
INSERT INTO users (name, pass, mail) VALUES ('Jaron', 'AB3...AB4', '[email protected]')
Als je geen mysql_real_escape_string gebruikt, levert dit bij namen met een ' er in een probleem op. Om die problemen te voorkomen gebruik je dus mysql_real_escape_string of addslashes.
Echter addslashes werkt alleen maar voor charsets waar enkel ' en " als teken wordt gebruikt voor het openen van velden. Het gevolg is echter wel dat bijv. in UTF8 er meerdere tekens zijn die hetzelfde betekenen als ' die ge-escaped dienen te worden. Daarnaast escaped addslashes ook double-quotes, die we helemaal niet ge-escaped willen hebben. Dat levert namelijk bij bepaalde configuraties extra slashes op in de database. Om die reden willen we dus geen addslashes maar mysql_real_escape_string zien.
Stripslashes om de waarden terug te krijgen is helemaal onzin. Daar ga ik niet eens over beginnen. Dat mag je gewoon zelf uitproberen. Als je dat echt nodig hebt, dan heb je toch echt een paar foute instellingen in je PHP en/of MySQL zitten.
Zie ook even: http://wiki.phpfreakz.nl/SQLInjectie
Gewijzigd op 01/01/1970 01:00:00 door Jan Willem van der Veer
huh ik snap er weinig van
#bump#
Als je iets niet snapt, beschrijf dan precies wat je niet snapt.