MySQL error message, maar onvindbaar.
Ik heb zo net de mysql_error() aangezet. alleen ik vind het probleem van de error niet. Heb al vanalles veranderd en ge-delete.
FOUT: 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 '' at line 1
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
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
<html>
<?php include ('config.php') ?>
<head><title>Database Registratiesysteem</title>
<link href="wbl_stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
$query="SELECT * from gegevens WHERE nummer=" .$_POST["nummer"];
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
while($row = mysql_fetch_assoc($query)){
$nummer = ($row['nummmer']);
$name = ($row ['name']);
$datum1 = ($row['datum1']);
$ontvangstdatum = ($row['ontvangstdatum']);
$berichtgever = ($row['berichtgever']);
$workunit = ($row['workunit']);
$tekstvak1 = ($row['tekstvak1']);
$tekstvak2 = ($row['tekstvak2']);
$tekstvak3 = ($row['tekstvak3']);
$tekstvak4 = ($row['tekstvak4']);
$termijn = ($row['termijn']);
$tekstvak5 = ($row['tekstvak5']);
$tekstvak6 = ($row['tekstvak6']);
$tekstvak7 = ($row['tekstvak7']);
$tekstvak8 = ($row['tekstvak8']);
$gereed = ($row['gereed']);
}
?>
<center>
<h1>KAM Registratie <? echo $nummer ; ?> </h1>
</center>
<table WIDTH="851" height="613" CELLSPACING="2" CELLPADDING="2" BORDER="1" BORDERCOLOR="#24588b" STYLE="background-color:#bddcfa";>
<tr>
<td><p class=kleintabel2>Registratie nr:</p><td>
<p class=kleintabel1><? echo $nummer ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam:</p><td>
<p class=kleintabel1><? echo $name ; ?></p>
</tr>
<tr>
<td><p class="kleintabel2">Datum externe melding:</p><td>
<p class="kleintabel1"><? echo $datum1 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Ontvangstdatum externe melding:</p><td>
<p class=kleintabel1><? echo $ontvangstdatum ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam berichtgever:</p><td>
<p class=kleintabel1><? echo $berichtgever ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Selecteer op werk eenheid:</p><td>
<p class=kleintabel1><? echo $workunit ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Beschrijving van de melding/klacht:</p><td>
<p class=kleintabel1><? echo $tekstvak1 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Vermoedelijke oorzaak:</p><td>
<p class=kleintabel1><? echo $tekstvak2 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Getroffen maatregelen (indien mogelijk):</p><td>
<p class=kleintabel1><? echo $tekstvak3 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Taakverantwoordelijke:</p><td>
<p class=kleintabel1><? echo $tekstvak4 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Afhandelingstermijn:</p><td>
<p class=kleintabel1><? echo $termijn ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel corrigerende maatregeling:</p><td>
<p class=kleintabel1><? echo $tekstvak5 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel preventieve maatregeling:</p><td>
<p class=kleintabel1><? echo $tekstvak6 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Genomen maatregel:</p><td>
<p class=kleintabel1><? echo $tekstvak7 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Evaluatie van de maatregel:</p><td>
<p class=kleintabel1><? echo $tekstvak8 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Gereed:</p><td>
<p class=kleintabel1><? echo $gereeld ; ?></p></td>
</tr>
</table>
</body>
</html>
<?php include ('config.php') ?>
<head><title>Database Registratiesysteem</title>
<link href="wbl_stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
$query="SELECT * from gegevens WHERE nummer=" .$_POST["nummer"];
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
while($row = mysql_fetch_assoc($query)){
$nummer = ($row['nummmer']);
$name = ($row ['name']);
$datum1 = ($row['datum1']);
$ontvangstdatum = ($row['ontvangstdatum']);
$berichtgever = ($row['berichtgever']);
$workunit = ($row['workunit']);
$tekstvak1 = ($row['tekstvak1']);
$tekstvak2 = ($row['tekstvak2']);
$tekstvak3 = ($row['tekstvak3']);
$tekstvak4 = ($row['tekstvak4']);
$termijn = ($row['termijn']);
$tekstvak5 = ($row['tekstvak5']);
$tekstvak6 = ($row['tekstvak6']);
$tekstvak7 = ($row['tekstvak7']);
$tekstvak8 = ($row['tekstvak8']);
$gereed = ($row['gereed']);
}
?>
<center>
<h1>KAM Registratie <? echo $nummer ; ?> </h1>
</center>
<table WIDTH="851" height="613" CELLSPACING="2" CELLPADDING="2" BORDER="1" BORDERCOLOR="#24588b" STYLE="background-color:#bddcfa";>
<tr>
<td><p class=kleintabel2>Registratie nr:</p><td>
<p class=kleintabel1><? echo $nummer ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam:</p><td>
<p class=kleintabel1><? echo $name ; ?></p>
</tr>
<tr>
<td><p class="kleintabel2">Datum externe melding:</p><td>
<p class="kleintabel1"><? echo $datum1 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Ontvangstdatum externe melding:</p><td>
<p class=kleintabel1><? echo $ontvangstdatum ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam berichtgever:</p><td>
<p class=kleintabel1><? echo $berichtgever ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Selecteer op werk eenheid:</p><td>
<p class=kleintabel1><? echo $workunit ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Beschrijving van de melding/klacht:</p><td>
<p class=kleintabel1><? echo $tekstvak1 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Vermoedelijke oorzaak:</p><td>
<p class=kleintabel1><? echo $tekstvak2 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Getroffen maatregelen (indien mogelijk):</p><td>
<p class=kleintabel1><? echo $tekstvak3 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Taakverantwoordelijke:</p><td>
<p class=kleintabel1><? echo $tekstvak4 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Afhandelingstermijn:</p><td>
<p class=kleintabel1><? echo $termijn ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel corrigerende maatregeling:</p><td>
<p class=kleintabel1><? echo $tekstvak5 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel preventieve maatregeling:</p><td>
<p class=kleintabel1><? echo $tekstvak6 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Genomen maatregel:</p><td>
<p class=kleintabel1><? echo $tekstvak7 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Evaluatie van de maatregel:</p><td>
<p class=kleintabel1><? echo $tekstvak8 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Gereed:</p><td>
<p class=kleintabel1><? echo $gereeld ; ?></p></td>
</tr>
</table>
</body>
</html>
Echo daarboven eens $_POST['nummer'], die is namelijk leeg :-)
Code (php)
1
2
2
echo 'je gaat nu iets verwijderen';
$query="SELECT * from gegevens WHERE nummer=" .$_POST["nummer"];
$query="SELECT * from gegevens WHERE nummer=" .$_POST["nummer"];
EDIT : Gevonden, kwartje viel wat later ;)
Gewijzigd op 24/06/2010 15:09:30 door Wim Janssen
Ik denk dat er een fout zit tussen de if en while functies.
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
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
<?php include ('config.php') ?>
<head><title>Database Registratiesysteem</title>
<link href="wbl_stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
if (isset($_POST["bevestiging"])){
$query="SELECT * from gegevens WHERE nummer=" .$_POST["nummer"];
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
}
while($row = mysql_fetch_assoc($query)){
$nummer = ($row['nummmer']);
$name = ($row ['name']);
$datum1 = ($row['datum1']);
$ontvangstdatum = ($row['ontvangstdatum']);
$berichtgever = ($row['berichtgever']);
$workunit = ($row['workunit']);
$tekstvak1 = ($row['tekstvak1']);
$tekstvak2 = ($row['tekstvak2']);
$tekstvak3 = ($row['tekstvak3']);
$tekstvak4 = ($row['tekstvak4']);
$termijn = ($row['termijn']);
$tekstvak5 = ($row['tekstvak5']);
$tekstvak6 = ($row['tekstvak6']);
$tekstvak7 = ($row['tekstvak7']);
$tekstvak8 = ($row['tekstvak8']);
$gereed = ($row['gereed']);
?>
<center>
<h1>KAM Registratie <? echo $nummer ; ?> </h1>
</center>
<table WIDTH="851" height="613" CELLSPACING="2" CELLPADDING="2" BORDER="1" BORDERCOLOR="#24588b" STYLE="background-color:#bddcfa";>
<tr>
<td width="306"><p class=kleintabel2>Registratie nr:</p><td width="525">
<p class=kleintabel1><? echo $nummer ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam:</p><td>
<p class=kleintabel1><? echo $name ; ?></p>
</tr>
<tr>
<td><p class="kleintabel2">Datum externe melding:</p><td>
<p class="kleintabel1"><? echo $datum1 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Ontvangstdatum externe melding:</p><td>
<p class=kleintabel1><? echo $ontvangstdatum ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam berichtgever:</p><td>
<p class=kleintabel1><? echo $berichtgever ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Selecteer op werk eenheid:</p><td>
<p class=kleintabel1><? echo $workunit ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Beschrijving van de melding/klacht:</p><td>
<p class=kleintabel1><? echo $tekstvak1 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Vermoedelijke oorzaak:</p><td>
<p class=kleintabel1><? echo $tekstvak2 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Getroffen maatregelen (indien mogelijk):</p><td>
<p class=kleintabel1><? echo $tekstvak3 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Taakverantwoordelijke:</p><td>
<p class=kleintabel1><? echo $tekstvak4 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Afhandelingstermijn:</p><td>
<p class=kleintabel1><? echo $termijn ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel corrigerende maatregeling:</p><td>
<p class=kleintabel1><? echo $tekstvak5 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel preventieve maatregeling:</p><td>
<p class=kleintabel1><? echo $tekstvak6 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Genomen maatregel:</p><td>
<p class=kleintabel1><? echo $tekstvak7 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Evaluatie van de maatregel:</p><td>
<p class=kleintabel1><? echo $tekstvak8 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Gereed:</p><td>
<p class=kleintabel1><? echo $gereeld ; ?></p></td>
</tr>
</table>
</body>
</html>
<? } ?>
<head><title>Database Registratiesysteem</title>
<link href="wbl_stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
if (isset($_POST["bevestiging"])){
$query="SELECT * from gegevens WHERE nummer=" .$_POST["nummer"];
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
}
while($row = mysql_fetch_assoc($query)){
$nummer = ($row['nummmer']);
$name = ($row ['name']);
$datum1 = ($row['datum1']);
$ontvangstdatum = ($row['ontvangstdatum']);
$berichtgever = ($row['berichtgever']);
$workunit = ($row['workunit']);
$tekstvak1 = ($row['tekstvak1']);
$tekstvak2 = ($row['tekstvak2']);
$tekstvak3 = ($row['tekstvak3']);
$tekstvak4 = ($row['tekstvak4']);
$termijn = ($row['termijn']);
$tekstvak5 = ($row['tekstvak5']);
$tekstvak6 = ($row['tekstvak6']);
$tekstvak7 = ($row['tekstvak7']);
$tekstvak8 = ($row['tekstvak8']);
$gereed = ($row['gereed']);
?>
<center>
<h1>KAM Registratie <? echo $nummer ; ?> </h1>
</center>
<table WIDTH="851" height="613" CELLSPACING="2" CELLPADDING="2" BORDER="1" BORDERCOLOR="#24588b" STYLE="background-color:#bddcfa";>
<tr>
<td width="306"><p class=kleintabel2>Registratie nr:</p><td width="525">
<p class=kleintabel1><? echo $nummer ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam:</p><td>
<p class=kleintabel1><? echo $name ; ?></p>
</tr>
<tr>
<td><p class="kleintabel2">Datum externe melding:</p><td>
<p class="kleintabel1"><? echo $datum1 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Ontvangstdatum externe melding:</p><td>
<p class=kleintabel1><? echo $ontvangstdatum ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam berichtgever:</p><td>
<p class=kleintabel1><? echo $berichtgever ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Selecteer op werk eenheid:</p><td>
<p class=kleintabel1><? echo $workunit ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Beschrijving van de melding/klacht:</p><td>
<p class=kleintabel1><? echo $tekstvak1 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Vermoedelijke oorzaak:</p><td>
<p class=kleintabel1><? echo $tekstvak2 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Getroffen maatregelen (indien mogelijk):</p><td>
<p class=kleintabel1><? echo $tekstvak3 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Taakverantwoordelijke:</p><td>
<p class=kleintabel1><? echo $tekstvak4 ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Afhandelingstermijn:</p><td>
<p class=kleintabel1><? echo $termijn ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel corrigerende maatregeling:</p><td>
<p class=kleintabel1><? echo $tekstvak5 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel preventieve maatregeling:</p><td>
<p class=kleintabel1><? echo $tekstvak6 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Genomen maatregel:</p><td>
<p class=kleintabel1><? echo $tekstvak7 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Evaluatie van de maatregel:</p><td>
<p class=kleintabel1><? echo $tekstvak8 ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Gereed:</p><td>
<p class=kleintabel1><? echo $gereeld ; ?></p></td>
</tr>
</table>
</body>
</html>
<? } ?>
Gelieve niet te bumpen. Bumpen is het binnen 24 uur reageren op een eigen reactie. Mocht je nog een bericht willen toevoegen, bewerk dan je laatste bericht.[/modedit]
Gewijzigd op 24/06/2010 15:30:14 door Chris -
Dan kun je zien wat er in de database gaat.
Je bedoeld ergens een echo te plaatsen ?
mysql_real_escape_string niet!
Vergeet Karl Karl op 24/06/2010 16:21:26:
Vergeet mysql_real_escape_string niet!
Waar zou ik deze dan tussen moeten zetten, waarom werkt deze manier niet ?
http://www.phphulp.nl/php/tutorial/overig/php-beginners-handleiding/575/
http://www.phphulp.nl/php/tutorial/overig/sql-beginners-handleiding/576/
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-in-php-error-handling/571/
en de mysql_real_escape_string() functie kun je gebruiken om SQL injection te voorkomen (mensen die een " in een invoerveld plaatsen krijgen dan een error te zien, en ze kunnen dan zelf query's uitvoeren). Dat is dus alleen voor beveiliging.
Thomas s op 28/06/2010 10:39:06:
Volgens mij moet er nog een " achter, omdat een query tussen twee "" moet.
en de mysql_real_escape_string() functie kun je gebruiken om SQL injection te voorkomen (mensen die een " in een invoerveld plaatsen krijgen dan een error te zien, en ze kunnen dan zelf query's uitvoeren). Dat is dus alleen voor beveiliging.
en de mysql_real_escape_string() functie kun je gebruiken om SQL injection te voorkomen (mensen die een " in een invoerveld plaatsen krijgen dan een error te zien, en ze kunnen dan zelf query's uitvoeren). Dat is dus alleen voor beveiliging.
Als je niet weet waar je het over hebt, moet je niet antwoorden. De query zit nu al tussen twee aanhalingstekens. Het is dus onzin om nog een lege string achter de query te stoppen. Ook hoeven er geen apostrofs om getallen heen. Selecteer ook wat je wilt hebben, gebruik niet *.
Inderdaad is mysql_real_escape_string alleen voor beveiliging. Maar jij vind het dus niet erg dat hacker eventueel via zo'n groot gat je server kan overnemen, (privé) gegevens kan stelen of gewoon de boel vernielen?
edit:
Natuurlijk is naar int typecasten ook goed, heb je mysql_real_escape_string ook niet nodig. Of prepared statements gebruiken.
Ik snap wel dat er beteren manieren zijn. Maar als het werkt ben ik te vreden.
Wim, daarom moet je op die linkjes klikken die ik gegeven heb. Daarin staan wat basis tutorials.
Karl Karl op 28/06/2010 13:37:16:
Als je niet weet waar je het over hebt, moet je niet antwoorden. De query zit nu al tussen twee aanhalingstekens. Het is dus onzin om nog een lege string achter de query te stoppen. Ook hoeven er geen apostrofs om getallen heen. Selecteer ook wat je wilt hebben, gebruik niet *.
Inderdaad is mysql_real_escape_string alleen voor beveiliging. Maar jij vind het dus niet erg dat hacker eventueel via zo'n groot gat je server kan overnemen, (privé) gegevens kan stelen of gewoon de boel vernielen?
Thomas s op 28/06/2010 10:39:06:
Volgens mij moet er nog een " achter, omdat een query tussen twee "" moet.
en de mysql_real_escape_string() functie kun je gebruiken om SQL injection te voorkomen (mensen die een " in een invoerveld plaatsen krijgen dan een error te zien, en ze kunnen dan zelf query's uitvoeren). Dat is dus alleen voor beveiliging.
en de mysql_real_escape_string() functie kun je gebruiken om SQL injection te voorkomen (mensen die een " in een invoerveld plaatsen krijgen dan een error te zien, en ze kunnen dan zelf query's uitvoeren). Dat is dus alleen voor beveiliging.
Als je niet weet waar je het over hebt, moet je niet antwoorden. De query zit nu al tussen twee aanhalingstekens. Het is dus onzin om nog een lege string achter de query te stoppen. Ook hoeven er geen apostrofs om getallen heen. Selecteer ook wat je wilt hebben, gebruik niet *.
Inderdaad is mysql_real_escape_string alleen voor beveiliging. Maar jij vind het dus niet erg dat hacker eventueel via zo'n groot gat je server kan overnemen, (privé) gegevens kan stelen of gewoon de boel vernielen?
edit:
Natuurlijk is naar int typecasten ook goed, heb je mysql_real_escape_string ook niet nodig. Of prepared statements gebruiken.
Zoals je kunt zien stond in mijn code het getal niet tussen apostrofs, alleen de "" om ervoor te zorgen dat het als phpcode werd gezien.
Ik zeg toch ook dat mysql_real_escape_string() voor de beveiliging is, en dat is nodig als je de query's gebruikt waar bezoekers bij kunnen. Dat is echter niet altijd het geval. Bijvoorbeeld bij een adminpagina, je gaat volgens mij niet je eigen database hacken.
Als je alles nodig hebt uit een tabel is het toch handig een * te gebruiken.
Thomas s op 28/06/2010 18:08:12:
Zoals je kunt zien stond in mijn code het getal niet tussen apostrofs, alleen de "" om ervoor te zorgen dat het als phpcode werd gezien.
Karl Karl op 28/06/2010 13:37:16:
Als je niet weet waar je het over hebt, moet je niet antwoorden. De query zit nu al tussen twee aanhalingstekens. Het is dus onzin om nog een lege string achter de query te stoppen. Ook hoeven er geen apostrofs om getallen heen. Selecteer ook wat je wilt hebben, gebruik niet *.
Inderdaad is mysql_real_escape_string alleen voor beveiliging. Maar jij vind het dus niet erg dat hacker eventueel via zo'n groot gat je server kan overnemen, (privé) gegevens kan stelen of gewoon de boel vernielen?
Thomas s op 28/06/2010 10:39:06:
Volgens mij moet er nog een " achter, omdat een query tussen twee "" moet.
en de mysql_real_escape_string() functie kun je gebruiken om SQL injection te voorkomen (mensen die een " in een invoerveld plaatsen krijgen dan een error te zien, en ze kunnen dan zelf query's uitvoeren). Dat is dus alleen voor beveiliging.
en de mysql_real_escape_string() functie kun je gebruiken om SQL injection te voorkomen (mensen die een " in een invoerveld plaatsen krijgen dan een error te zien, en ze kunnen dan zelf query's uitvoeren). Dat is dus alleen voor beveiliging.
Als je niet weet waar je het over hebt, moet je niet antwoorden. De query zit nu al tussen twee aanhalingstekens. Het is dus onzin om nog een lege string achter de query te stoppen. Ook hoeven er geen apostrofs om getallen heen. Selecteer ook wat je wilt hebben, gebruik niet *.
Inderdaad is mysql_real_escape_string alleen voor beveiliging. Maar jij vind het dus niet erg dat hacker eventueel via zo'n groot gat je server kan overnemen, (privé) gegevens kan stelen of gewoon de boel vernielen?
edit:
Natuurlijk is naar int typecasten ook goed, heb je mysql_real_escape_string ook niet nodig. Of prepared statements gebruiken.
Zoals je kunt zien stond in mijn code het getal niet tussen apostrofs, alleen de "" om ervoor te zorgen dat het als phpcode werd gezien.
Ik zeg ook niet dat jij apostrofs gebruikt. Ik heb het echt alleen over die dubbele aanhalingstekens op het end. Wat voor nut hebben die? Waarom zou je dat doen? Nergens om, want er gebeurd niks mee.
Test maar uit:
Weglaten dus.
Thomas s op 28/06/2010 18:08:12:
Ik zeg toch ook dat mysql_real_escape_string() voor de beveiliging is, en dat is nodig als je de query's gebruikt waar bezoekers bij kunnen. Dat is echter niet altijd het geval. Bijvoorbeeld bij een adminpagina, je gaat volgens mij niet je eigen database hacken.
Dat is denk ik wel het slechtste argument hiervoor wat ik ooit heb gehoord. ’Vertrouw nooit de gebruiker.’ Iedereen (scripter, coder, programmeur) zou die stelling moeten kennen. Je kan per definitie de gebruiker niet vertrouwen. En wat ben jij op die admin pagina? Ja, een gebruiker.
Of moet je soms inconsequent beleid gaan voeren? Op de ene plek wel alles beveiligen en op de andere plek niet?
En dan nog de hoofdprijs: Wat als de hacker heeft kunnen inloggen op de admin pagina?
Thomas s op 28/06/2010 18:08:12:
Als je alles nodig hebt uit een tabel is het toch handig een * te gebruiken.
Alsjeblieft, niet doen. Je kunt hier (hier dus: http://www.parseerror.com/sql/select*isevil.html ) lezen waarom je het niet moet doen, zeker juist niet met veel velden.
Ook is het zo, geloof ik, dat * een wildcard is, waar je een of meerder fields opvraagt. Dus dat betekend dat de DBMS in principe niet alle fields hoeft te geven (want je vraagt er niet expliciet om).
Thomas s op 28/06/2010 18:08:12:
Ik zeg toch ook dat mysql_real_escape_string() voor de beveiliging is, en dat is nodig als je de query's gebruikt waar bezoekers bij kunnen. Dat is echter niet altijd het geval. Bijvoorbeeld bij een adminpagina, je gaat volgens mij niet je eigen database hacken.
Heeft niet alleen met beveiliging te maken, het gaat veel verder. Ook op je admin pagina's wil je soms wel eens gewoon '-jes in kunnen voeren. Om bijvoorbeeld het 's-Hertogenbosch dat in een tekst staat op te kunnen slaan.
Thomas s op 28/06/2010 18:08:12:
Als je alles nodig hebt uit een tabel is het toch handig een * te gebruiken.
Totdat je later in phpmyadmin een kolom invoegt tussen 2 andere kolomen in. Dan leer je het vanzelf af.
Gewijzigd op 29/06/2010 00:11:18 door Piet Verhagen
mysql_real_escape_string eens goed door gelezen. en ben aan de slag gegaan met dit als voorbeeld.
Alleen hier schiet ik niks mee op, de beveiling is niet echt van belang. het wordt allemaal lokaal gebruikt.
Ik heb nog gesleuteld aan me script. en als uitwerking krijg ik nu meer te zien. hij laat nu alleen de echo niet ziet die in de tabel staan.Zie ik nog iets over het hoofd ?
Ik heb de pagina Code (php)
1
2
3
4
5
2
3
4
5
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>
Alleen hier schiet ik niks mee op, de beveiling is niet echt van belang. het wordt allemaal lokaal gebruikt.
Ik heb nog gesleuteld aan me script. en als uitwerking krijg ik nu meer te zien. hij laat nu alleen de echo niet ziet die in de tabel staan.Zie ik nog iets over het hoofd ?
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
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
<?php include ('config.php') ?>
<head><title>Database Registratiesysteem</title>
<link href="wbl_stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
if (isset($_POST["bevestiging"])){
$query="SELECT * from gegevens WHERE nummer=" .$_POST["nummer"]. "";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
}
while($row = mysql_fetch_assoc($query)){
$nummer = ($row['nummmer']);
$name = ($row ['name']);
$datum1 = ($row['datum1']);
$ontvangstdatum = ($row['ontvangstdatum']);
$berichtgever = ($row['berichtgever']);
$workunit = ($row['workunit']);
$tekstvak1 = ($row['tekstvak1']);
$tekstvak2 = ($row['tekstvak2']);
$tekstvak3 = ($row['tekstvak3']);
$tekstvak4 = ($row['tekstvak4']);
$termijn = ($row['termijn']);
$tekstvak5 = ($row['tekstvak5']);
$tekstvak6 = ($row['tekstvak6']);
$tekstvak7 = ($row['tekstvak7']);
$tekstvak8 = ($row['tekstvak8']);
$gereed = ($row['gereed']);
}
?>
<center>
<h1>KAM Registratie <? echo $nummer ; ?> </h1>
</center>
<table WIDTH="851" height="613" CELLSPACING="2" CELLPADDING="2" BORDER="1" BORDERCOLOR="#24588b" STYLE="background-color:#bddcfa";>
<tr>
<td width="306"><p class=kleintabel2>Registratie nr:</p><td width="525">
<p class=kleintabel1><? echo ($nummer) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam:</p><td>
<p class=kleintabel1><? echo ($name) ; ?></p>
</tr>
<tr>
<td><p class="kleintabel2">Datum externe melding:</p><td>
<p class="kleintabel1"><?php echo($datum1);?></p>
</tr>
<tr>
<td><p class=kleintabel2>Ontvangstdatum externe melding:</p><td>
<p class=kleintabel1><? echo ($ontvangstdatum) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam berichtgever:</p><td>
<p class=kleintabel1><? echo ($berichtgever) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Selecteer op werk eenheid:</p><td>
<p class=kleintabel1><? echo ($workunit) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Beschrijving van de melding/klacht:</p><td>
<p class=kleintabel1><? echo ($tekstvak1) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Vermoedelijke oorzaak:</p><td>
<p class=kleintabel1><? echo ($tekstvak2) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Getroffen maatregelen (indien mogelijk):</p><td>
<p class=kleintabel1><? echo ($tekstvak3) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Taakverantwoordelijke:</p><td>
<p class=kleintabel1><? echo ($tekstvak4) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Afhandelingstermijn:</p><td>
<p class=kleintabel1><? echo ($termijn) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel corrigerende maatregeling:</p><td>
<p class=kleintabel1><? echo ($tekstvak5) ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel preventieve maatregeling:</p><td>
<p class=kleintabel1><? echo ($tekstvak6) ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Genomen maatregel:</p><td>
<p class=kleintabel1><? echo ($tekstvak7) ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Evaluatie van de maatregel:</p><td>
<p class=kleintabel1><? echo ($tekstvak8) ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Gereed:</p><td>
<p class=kleintabel1><? echo ($gereeld) ; ?></p></td>
</tr>
</table>
</body>
</html>
<head><title>Database Registratiesysteem</title>
<link href="wbl_stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
if (isset($_POST["bevestiging"])){
$query="SELECT * from gegevens WHERE nummer=" .$_POST["nummer"]. "";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
}
while($row = mysql_fetch_assoc($query)){
$nummer = ($row['nummmer']);
$name = ($row ['name']);
$datum1 = ($row['datum1']);
$ontvangstdatum = ($row['ontvangstdatum']);
$berichtgever = ($row['berichtgever']);
$workunit = ($row['workunit']);
$tekstvak1 = ($row['tekstvak1']);
$tekstvak2 = ($row['tekstvak2']);
$tekstvak3 = ($row['tekstvak3']);
$tekstvak4 = ($row['tekstvak4']);
$termijn = ($row['termijn']);
$tekstvak5 = ($row['tekstvak5']);
$tekstvak6 = ($row['tekstvak6']);
$tekstvak7 = ($row['tekstvak7']);
$tekstvak8 = ($row['tekstvak8']);
$gereed = ($row['gereed']);
}
?>
<center>
<h1>KAM Registratie <? echo $nummer ; ?> </h1>
</center>
<table WIDTH="851" height="613" CELLSPACING="2" CELLPADDING="2" BORDER="1" BORDERCOLOR="#24588b" STYLE="background-color:#bddcfa";>
<tr>
<td width="306"><p class=kleintabel2>Registratie nr:</p><td width="525">
<p class=kleintabel1><? echo ($nummer) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam:</p><td>
<p class=kleintabel1><? echo ($name) ; ?></p>
</tr>
<tr>
<td><p class="kleintabel2">Datum externe melding:</p><td>
<p class="kleintabel1"><?php echo($datum1);?></p>
</tr>
<tr>
<td><p class=kleintabel2>Ontvangstdatum externe melding:</p><td>
<p class=kleintabel1><? echo ($ontvangstdatum) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Naam berichtgever:</p><td>
<p class=kleintabel1><? echo ($berichtgever) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Selecteer op werk eenheid:</p><td>
<p class=kleintabel1><? echo ($workunit) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Beschrijving van de melding/klacht:</p><td>
<p class=kleintabel1><? echo ($tekstvak1) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Vermoedelijke oorzaak:</p><td>
<p class=kleintabel1><? echo ($tekstvak2) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Getroffen maatregelen (indien mogelijk):</p><td>
<p class=kleintabel1><? echo ($tekstvak3) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Taakverantwoordelijke:</p><td>
<p class=kleintabel1><? echo ($tekstvak4) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Afhandelingstermijn:</p><td>
<p class=kleintabel1><? echo ($termijn) ; ?></p>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel corrigerende maatregeling:</p><td>
<p class=kleintabel1><? echo ($tekstvak5) ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Voorstel preventieve maatregeling:</p><td>
<p class=kleintabel1><? echo ($tekstvak6) ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Genomen maatregel:</p><td>
<p class=kleintabel1><? echo ($tekstvak7) ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Evaluatie van de maatregel:</p><td>
<p class=kleintabel1><? echo ($tekstvak8) ; ?></p></td>
</tr>
<tr>
<td><p class=kleintabel2>Gereed:</p><td>
<p class=kleintabel1><? echo ($gereeld) ; ?></p></td>
</tr>
</table>
</body>
</html>
Verder zal alleen het laatst gevonden record worden getoond.
SanThe Nvt op 29/06/2010 13:59:23:
Regel 13 zal een error geven.
Verder zal alleen het laatst gevonden record worden getoond.
Verder zal alleen het laatst gevonden record worden getoond.
Zou je mij een voorbeeld kunnen geven hoe ik het wel werkend krijg ?
Alvast bedankt
Heb je zelf al naar regel 13 gekeken?
Moet mysql_fetch_assoc geen mysql_fetch_array zijn ? en bij regel 31 moet ik volgens mij afsluiten }; ?>