SQL Column doesn't count...
Na een topic van 12 blz en verveling vroeg ik aan iemand of ik iets mocht maken, die persoon zei maak een login/registratie scriptje.
Nu , ik weet niet wat er zo fout is eraan maar ik post de code.
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
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
$naam = $_POST['naam'];
$achternaam = $_POST['achternaam'];
$wachtwoord = $_POST['wachtwoord'];
$email = $_POST['e-mail'];
$sql = "INSERT INTO loginmenno (id, naam, achternaam, wachtwoord, email) VALUES ('".$naam."', '".$achternaam."', '".$wachtwoord."', '".$email."')";
if(empty($naam)){
echo ' Je bent vergeten een naam in te vullen<br> ';
}
if(empty($achternaam)){
echo ' Je bent vergeten je achternaam in te vullen<br> ';
}
if(empty($wachtwoord)){
echo ' Je bent vergeten wachtwoord in te vullen<br> ';
}
if(empty($email)){
echo ' Je bent vergeten een e-mail in te vullen<br> ';
}
echo $sql;
$versturen = mysql_query($sql);
if ($versturen){
echo ' Je gegevens werden verstuurd en zijn goed ontvangen<br> ';
}else{
echo mysql_error();
}
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');
$naam = $_POST['naam'];
$achternaam = $_POST['achternaam'];
$wachtwoord = $_POST['wachtwoord'];
$email = $_POST['e-mail'];
$sql = "INSERT INTO loginmenno (id, naam, achternaam, wachtwoord, email) VALUES ('".$naam."', '".$achternaam."', '".$wachtwoord."', '".$email."')";
if(empty($naam)){
echo ' Je bent vergeten een naam in te vullen<br> ';
}
if(empty($achternaam)){
echo ' Je bent vergeten je achternaam in te vullen<br> ';
}
if(empty($wachtwoord)){
echo ' Je bent vergeten wachtwoord in te vullen<br> ';
}
if(empty($email)){
echo ' Je bent vergeten een e-mail in te vullen<br> ';
}
echo $sql;
$versturen = mysql_query($sql);
if ($versturen){
echo ' Je gegevens werden verstuurd en zijn goed ontvangen<br> ';
}else{
echo mysql_error();
}
?>
Nu mijn output is dit
INSERT INTO loginmenno (id, naam, achternaam, wachtwoord, email) VALUES ('wouter', '', 'test123', '')Column count doesn't match value count at row 1
Kan iemand me verder helpen ?
mvg
(blanche sst :d )
5 velden en slechts 4 waarden.
ID , wordt niet gegeven die word toch zelf aangemaakt door phpmyadmin niet ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
INSERT INTO
loginmenno (
id,
naam,
achternaam,
wachtwoord,
email
)
VALUES (
'wouter',
'',
'test123',
''
)
loginmenno (
id,
naam,
achternaam,
wachtwoord,
)
VALUES (
'wouter',
'',
'test123',
''
)
Nu zie je ook in 1 keer dat je 5 kolommen en 4 values hebt. Ga dat maar eens matchen met de foutmelding... ;-)
Je wilt in meerdere velden data wegschrijven als dat je aangeeft. In dit geval moet je id even uit je query halen.
Edit:
veel te langzaam :P
edit 2
ook lekker gevoelig voor sql injection.
en ook niet echt logisch dat je eerst de query maakt en dan pas gaat kijken of de velden wel zijn ingevuld.
veel te langzaam :P
edit 2
ook lekker gevoelig voor sql injection.
en ook niet echt logisch dat je eerst de query maakt en dan pas gaat kijken of de velden wel zijn ingevuld.
Gewijzigd op 01/01/1970 01:00:00 door Gerben G
Waarvan Donhertog zijn het interresantste was.
Werkt dank u
Ik weet nog niet hoe ik de sql injectie vermijd, maar het systeem ging ook niet voor op de markt te komen zijn. hiervoor heb ik jan zijn superlogin revisted :).
Ik kan alleen niet zo goed php daarom dat ik het ook zelf moet proberen !.
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
mysql_real_escape_string() kun je gebruiken om sql injection te voorkomen
Ik weet het niet zo he sql is nog moeilijker als php voor mij :d