Probleem met INSERT INTO
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
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
<?php
$selectLandOrder = 'SELECT db_land.id, db_land.naam FROM db_land WHERE db_land.order != 0 ORDER BY db_land.order, db_land.naam';
$resultLandOrder = mysql_query($selectLandOrder);
$selectLand = 'SELECT db_land.id, db_land.naam FROM db_land ORDER BY db_land.naam';
$resultLand = mysql_query($selectLand);
?>
<link rel="stylesheet" href="../css/content.css"/>
<h1>Voeg een nieuwe Klant toe</h1>
<form name="add_klant" action="" method="post">
<div id="add_all">
<div id="add_text">
<div class="add_text">Winkel*</div>
<div class="add_text">Contactpersoon*</div>
<div class="add_text">bedrijf_id*</div>
<div class="add_text">Adres*</div>
<div class="add_text">Postcode*</div>
<div class="add_text">Plaats*</div>
<div class="add_text">Land*</div>
<div class="add_text">Telefoon*</div>
<div class="add_text">Mobiel</div>
<div class="add_text">Fax</div>
<div class="add_text">E-mail*</div>
<div class="add_text">Korting</div>
<div class="add_text">Betaaltermijn</div>
<div class="add_text">Geslacht*</div>
<div class="add_text">Wachtwoord*</div>
<div class="add_text">Kvk</div>
<div class="add_text">Btw</div>
<div class="add_text">Nieuwsbrief</div>
<div class="add_test">Actief</div>
<div class="add_text">Notitie</div>
</div>
<div id="add_input">
<div class="add_input"><input type="text" name="winkel" id="winkel"/></div>
<div class="add_input"><input type="text" name="contactpersoon" id="contactpersoon"/></div>
<div class="add_input"><input type="text" name="bedrijf_id" id="bedrijf_id"/></div>
<div class="add_input"><input type="text" name="adres" id="adres"/></div>
<div class="add_input"><input type="text" name="postcode" id="postcode"/></div>
<div class="add_input"><input type="text" name="plaats" id="plaats"/></div>
<div class="add_input">
<select name="select_land" id="select_land">
<option value="0">--</option>
<optgroup label="Meest Voorkomend">
<?php
while($rowLandOrder = mysql_fetch_assoc($resultLandOrder))
{
echo'<option value="'.$rowLandOrder['id'].'">'.$rowLandOrder['naam'].'</option>';
}
echo '</optgroup>
<optgroup label="Andere">';
while($rowLand = mysql_fetch_assoc($resultLand))
{
echo '<option value="'.$rowLand['id'].'">'.$rowLand['naam'].'</option>';
}
echo '</optgroup>';
?>
</select></div>
<div class="add_input"><input type="text" name="telefoon" id="telefoon"/></div>
<div class="add_input"><input type="text" name="mobiel" id="mobiel"/></div>
<div class="add_input"><input type="text" name="fax" id="fax"/></div>
<div class="add_input"><input type="text" name="e-mail" id="e-mail"/></div>
<div class="add_input"><input type="text" name="korting" id="korting"/></div>
<div class="add_input"><input type="text" name="betaaltermijn" id="betaaltermijn"/></div>
<div class="add_input"></div><div class="radio">
<input type="radio" name="geslacht" value="man" /> Man
<input type="radio" name="geslacht" value="vrouw" /> Vrouw<br />
</div>
<div class="add_input"><input type="password" name="wachtwoord" id="wachtwoord"/></div>
<div class="add_input"><input type="text" name="kvk" id="kvk"/></div>
<div class="add_input"><input type="text" name="btw" id="btw"/></div>
<div class="add_input"><input type="checkbox" name="nieuwsbrief" id="nieuwsbrief" value="1"/></div>
<div class="add_input"></div><div class="radio">
<input type="radio" name="actief" value="1" /> Ja
<input type="radio" name="actief" value="2" /> Nee
</div>
<div class="add_input"><input type="text" name="notitie" id="notitie"/></div>
<div class="add_input"><input type="submit" name="submit" id="submit" value="Opslaan"/></div>
</div>
</div>
</form>
<?php
if(isset($_POST['submit']))
{
$winkel = mysql_real_escape_string($_POST['winkel']);
$contactpersoon = mysql_real_escape_string($_POST['contactpersoon']);
$bedrijf_id = mysql_real_escape_string($_POST['bedrijf_id']);
$adres = mysql_real_escape_string($_POST['adres']);
$postcode = mysql_real_escape_string($_POST['postcode']);
$plaats = mysql_real_escape_string($_POST['plaats']);
$telefoon = mysql_real_escape_string($_POST['telefoon']);
$mobiel = mysql_real_escape_string($_POST['mobiel']);
$fax = mysql_real_escape_string($_POST['fax']);
$email = mysql_real_escape_string($_POST['e-mail']);
$korting = mysql_real_escape_string($_POST['korting']);
$betaaltermijn = mysql_real_escape_string($_POST['betaaltermijn']);
$geslacht = mysql_real_escape_string($_POST['geslacht']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);
$kvk = mysql_real_escape_string($_POST['kvk']);
$btw = mysql_real_escape_string($_POST['btw']);
$nieuwsbrief = mysql_real_escape_string($_POST['nieuwsbrief']);
$actief = mysql_real_escape_string($_POST['actief']);
$notitie = mysql_real_escape_string($_POST['notitie']);
if(!empty($winkel) && !empty($contactpersoon) && !empty($bedrijf_id) && !empty($adres) && !empty($postcode) && !empty($plaats) && !empty($_POST['select_land']) && !empty($telefoon) && !empty($email) && !empty($geslacht) && !empty($wachtwoord))
{
$insertKlant = 'INSERT INTO db_klant (id, winkel, contactpersoon, bedrijf_id, adres, postcode, plaats, land, telefoon, mobiel, fax, email, korting, betaaltermijn, geslacht, wachtwoord, kvk, btw, nieuwsbrief, actief, notitie)
VALUES (NULL, "'.$winkel.'", "'.$contactpersoon.'", "'.$bedrijf_id.'", "'.$adres.'", "'.$postcode.'", "'.$plaats.'", '.$_POST['select_land'].',
'.$telefoon.', '.$mobiel.', '.$fax.', "'.$email.'", '.$korting.', '.$betaaltermijn.',
"'.$geslacht.'", "'.$wachtwoord.'", '.$kvk.', '.$btw.', '.$nieuwsbrief.', '.$actief.', "'.$notitie.'")';
echo $insertKlant;
mysql_query($insertKlant) or die(mysql_error());
}
else
{
echo 'Er is een verplicht veld leeggelaten. De klant is niet toegevoegd aan de database.';
}
}
?>
$selectLandOrder = 'SELECT db_land.id, db_land.naam FROM db_land WHERE db_land.order != 0 ORDER BY db_land.order, db_land.naam';
$resultLandOrder = mysql_query($selectLandOrder);
$selectLand = 'SELECT db_land.id, db_land.naam FROM db_land ORDER BY db_land.naam';
$resultLand = mysql_query($selectLand);
?>
<link rel="stylesheet" href="../css/content.css"/>
<h1>Voeg een nieuwe Klant toe</h1>
<form name="add_klant" action="" method="post">
<div id="add_all">
<div id="add_text">
<div class="add_text">Winkel*</div>
<div class="add_text">Contactpersoon*</div>
<div class="add_text">bedrijf_id*</div>
<div class="add_text">Adres*</div>
<div class="add_text">Postcode*</div>
<div class="add_text">Plaats*</div>
<div class="add_text">Land*</div>
<div class="add_text">Telefoon*</div>
<div class="add_text">Mobiel</div>
<div class="add_text">Fax</div>
<div class="add_text">E-mail*</div>
<div class="add_text">Korting</div>
<div class="add_text">Betaaltermijn</div>
<div class="add_text">Geslacht*</div>
<div class="add_text">Wachtwoord*</div>
<div class="add_text">Kvk</div>
<div class="add_text">Btw</div>
<div class="add_text">Nieuwsbrief</div>
<div class="add_test">Actief</div>
<div class="add_text">Notitie</div>
</div>
<div id="add_input">
<div class="add_input"><input type="text" name="winkel" id="winkel"/></div>
<div class="add_input"><input type="text" name="contactpersoon" id="contactpersoon"/></div>
<div class="add_input"><input type="text" name="bedrijf_id" id="bedrijf_id"/></div>
<div class="add_input"><input type="text" name="adres" id="adres"/></div>
<div class="add_input"><input type="text" name="postcode" id="postcode"/></div>
<div class="add_input"><input type="text" name="plaats" id="plaats"/></div>
<div class="add_input">
<select name="select_land" id="select_land">
<option value="0">--</option>
<optgroup label="Meest Voorkomend">
<?php
while($rowLandOrder = mysql_fetch_assoc($resultLandOrder))
{
echo'<option value="'.$rowLandOrder['id'].'">'.$rowLandOrder['naam'].'</option>';
}
echo '</optgroup>
<optgroup label="Andere">';
while($rowLand = mysql_fetch_assoc($resultLand))
{
echo '<option value="'.$rowLand['id'].'">'.$rowLand['naam'].'</option>';
}
echo '</optgroup>';
?>
</select></div>
<div class="add_input"><input type="text" name="telefoon" id="telefoon"/></div>
<div class="add_input"><input type="text" name="mobiel" id="mobiel"/></div>
<div class="add_input"><input type="text" name="fax" id="fax"/></div>
<div class="add_input"><input type="text" name="e-mail" id="e-mail"/></div>
<div class="add_input"><input type="text" name="korting" id="korting"/></div>
<div class="add_input"><input type="text" name="betaaltermijn" id="betaaltermijn"/></div>
<div class="add_input"></div><div class="radio">
<input type="radio" name="geslacht" value="man" /> Man
<input type="radio" name="geslacht" value="vrouw" /> Vrouw<br />
</div>
<div class="add_input"><input type="password" name="wachtwoord" id="wachtwoord"/></div>
<div class="add_input"><input type="text" name="kvk" id="kvk"/></div>
<div class="add_input"><input type="text" name="btw" id="btw"/></div>
<div class="add_input"><input type="checkbox" name="nieuwsbrief" id="nieuwsbrief" value="1"/></div>
<div class="add_input"></div><div class="radio">
<input type="radio" name="actief" value="1" /> Ja
<input type="radio" name="actief" value="2" /> Nee
</div>
<div class="add_input"><input type="text" name="notitie" id="notitie"/></div>
<div class="add_input"><input type="submit" name="submit" id="submit" value="Opslaan"/></div>
</div>
</div>
</form>
<?php
if(isset($_POST['submit']))
{
$winkel = mysql_real_escape_string($_POST['winkel']);
$contactpersoon = mysql_real_escape_string($_POST['contactpersoon']);
$bedrijf_id = mysql_real_escape_string($_POST['bedrijf_id']);
$adres = mysql_real_escape_string($_POST['adres']);
$postcode = mysql_real_escape_string($_POST['postcode']);
$plaats = mysql_real_escape_string($_POST['plaats']);
$telefoon = mysql_real_escape_string($_POST['telefoon']);
$mobiel = mysql_real_escape_string($_POST['mobiel']);
$fax = mysql_real_escape_string($_POST['fax']);
$email = mysql_real_escape_string($_POST['e-mail']);
$korting = mysql_real_escape_string($_POST['korting']);
$betaaltermijn = mysql_real_escape_string($_POST['betaaltermijn']);
$geslacht = mysql_real_escape_string($_POST['geslacht']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);
$kvk = mysql_real_escape_string($_POST['kvk']);
$btw = mysql_real_escape_string($_POST['btw']);
$nieuwsbrief = mysql_real_escape_string($_POST['nieuwsbrief']);
$actief = mysql_real_escape_string($_POST['actief']);
$notitie = mysql_real_escape_string($_POST['notitie']);
if(!empty($winkel) && !empty($contactpersoon) && !empty($bedrijf_id) && !empty($adres) && !empty($postcode) && !empty($plaats) && !empty($_POST['select_land']) && !empty($telefoon) && !empty($email) && !empty($geslacht) && !empty($wachtwoord))
{
$insertKlant = 'INSERT INTO db_klant (id, winkel, contactpersoon, bedrijf_id, adres, postcode, plaats, land, telefoon, mobiel, fax, email, korting, betaaltermijn, geslacht, wachtwoord, kvk, btw, nieuwsbrief, actief, notitie)
VALUES (NULL, "'.$winkel.'", "'.$contactpersoon.'", "'.$bedrijf_id.'", "'.$adres.'", "'.$postcode.'", "'.$plaats.'", '.$_POST['select_land'].',
'.$telefoon.', '.$mobiel.', '.$fax.', "'.$email.'", '.$korting.', '.$betaaltermijn.',
"'.$geslacht.'", "'.$wachtwoord.'", '.$kvk.', '.$btw.', '.$nieuwsbrief.', '.$actief.', "'.$notitie.'")';
echo $insertKlant;
mysql_query($insertKlant) or die(mysql_error());
}
else
{
echo 'Er is een verplicht veld leeggelaten. De klant is niet toegevoegd aan de database.';
}
}
?>
Gewijzigd op 02/11/2010 12:02:06 door Koen -
weet het niet zeker maar denk dat het fout gaat bij insert into id, en dat je de waarde null opgeeft daarvoor
Ik heb de waarde NULL iets anders gegeven maar dit werkt ook niet.
Edit: Er staan nog steeds $_POST waarden direct in de query => SQL-Injection. Haal de backtics uit de query.
Gewijzigd op 02/11/2010 11:54:08 door - SanThe -
Aangepast en heeft geen verschil opgeleverd
- SanThe - op 02/11/2010 11:51:45:
Volgens mij tel ik 20 velden en 21 waarden.
helemaal waar
EDIT: toch niet:p maar wat hij wel heeft is om de een ene waarde wel dubbele quotes en bij de andere niet, misschien daardoor?
Gewijzigd op 02/11/2010 12:20:16 door Teun Hesseling
Teun Hesseling op 02/11/2010 12:13:06:
helemaal waar
- SanThe - op 02/11/2010 11:51:45:
Volgens mij tel ik 20 velden en 21 waarden.
helemaal waar
Dat heb ik inmiddels al aangepast had ik al aangegeven in mijn vorige reactie.
EDIT:
Is dit niet om verschil te maken tussen een integer en varchar? ;)
Gewijzigd op 02/11/2010 12:25:34 door Koen -