SQL Column doesn't count...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wouter K

Wouter K

20/01/2008 21:34:00
Quote Anchor link
Hey,
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();
}

?>



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 )
 
PHP hulp

PHP hulp

21/11/2024 16:35:20
 
- SanThe -

- SanThe -

20/01/2008 21:36:00
Quote Anchor link
5 velden en slechts 4 waarden.
 
Wouter K

Wouter K

20/01/2008 21:36:00
Quote Anchor link
ID , wordt niet gegeven die word toch zelf aangemaakt door phpmyadmin niet ?
 
Frank -

Frank -

20/01/2008 21:36:00
Quote Anchor link
Query is onleesbaar, dit zal beter gaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
INSERT INTO
  loginmenno (
    id,
    naam,
    achternaam,
    wachtwoord,
    email
  )
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... ;-)
 
Gerben G

Gerben G

20/01/2008 21:37:00
Quote Anchor link
De error zegt het al:
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.
Gewijzigd op 01/01/1970 01:00:00 door Gerben G
 
Wouter K

Wouter K

20/01/2008 21:45:00
Quote Anchor link
Dank u voor de snelle reactie's

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
 
Gerben G

Gerben G

20/01/2008 21:53:00
Quote Anchor link
mysql_real_escape_string() kun je gebruiken om sql injection te voorkomen
 
Wouter K

Wouter K

20/01/2008 21:54:00
Quote Anchor link
mysql_real_escape_string($sql);

Ik weet het niet zo he sql is nog moeilijker als php voor mij :d
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.