Database invullen fout

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kristof Hendrickx

Kristof Hendrickx

26/08/2013 10:30:51
Quote Anchor link
Hallo,
ik krijg volgende error bij het invullen van waarden in de database: 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 '@hotmail.com, man, 14, 11, 1995)' at line 1

Dit krijg ik met volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$indatabase = "INSERT INTO users (Username, Password, Email, Geslacht, GBdag, GBmaand, GBjaar) VALUES ($gebruikersnaam,md5($wachtwoord), $emailadres, $mv, $gbdag, $gbmaand, $gbjaar)";
mysql_query($indatabase) or die (mysql_error());


Weet iemand waar mijn fout zit?
 
PHP hulp

PHP hulp

18/12/2024 23:44:54
 
Kris Peeters

Kris Peeters

26/08/2013 10:59:47
Quote Anchor link
Je moet String-waarden altijd tussen aanhalingstekens zetten

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$indatabase
= "INSERT INTO users (Username, Password, Email, Geslacht, GBdag, GBmaand, GBjaar)
VALUES ('$gebruikersnaam', md5('$wachtwoord'), '$emailadres', '$mv', '$gbdag', '$gbmaand', '$gbjaar')"
;
?>


Wat men hier graag ziet, is op volgende manier
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$indatabase
= "INSERT INTO users (Username, Password, Email, Geslacht, GBdag, GBmaand, GBjaar)
VALUES ('"
. $gebruikersnaam . "', md5('" . $wachtwoord . "'), '" . $emailadres . "', '" . $mv . "', '" . $gbdag . "', '" . $gbmaand . "', '" . $gbjaar . "')";
?>


En dan hoop ik dat al die waarden ge-escapet zijn.
bv. met mysql_real_escape_string
Gewijzigd op 26/08/2013 11:00:26 door Kris Peeters
 
Eddy E

Eddy E

26/08/2013 16:08:24
Quote Anchor link
Alleen van kolommen als GBdag, GBmaand, GBjaar is ziet er nogal ... knullig uit.
Waarom niet gewoon een Geboortedatum?
En dat dat dan een datum is?
 
Ward van der Put
Moderator

Ward van der Put

26/08/2013 16:24:04
Quote Anchor link
Eddy E op 26/08/2013 16:08:24:
Alleen van kolommen als GBdag, GBmaand, GBjaar is ziet er nogal ... knullig uit.
Waarom niet gewoon een Geboortedatum?
En dat dat dan een datum is?

Plus dat er een ISO-norm voor het geslacht is: ISO/IEC 5218. Dan kun je voor het geslacht een TINYINT(1) UNSIGNED gebruiken.
 
Kristof Hendrickx

Kristof Hendrickx

30/08/2013 13:27:14
Quote Anchor link
Ward van der Put op 26/08/2013 16:24:04:
Eddy E op 26/08/2013 16:08:24:
Alleen van kolommen als GBdag, GBmaand, GBjaar is ziet er nogal ... knullig uit.
Waarom niet gewoon een Geboortedatum?
En dat dat dan een datum is?

Plus dat er een ISO-norm voor het geslacht is: ISO/IEC 5218. Dan kun je voor het geslacht een TINYINT(1) UNSIGNED gebruiken.


Bijden wist ik niet meteen de manier, dit zal ik zeker nog aanpassen, maar nu even dit testen ;p

(ik ben inderdaad beginner in php en mysql)
Gewijzigd op 30/08/2013 13:27:43 door Kristof Hendrickx
 
Jeroen VD

Jeroen VD

30/08/2013 13:42:00
Quote Anchor link
Het Date Field inderdaad.

verder is een md5() een slechte encryptiemethode... welke wel het beste is staat ter discussie, maar ik gebruik altijd sha256()
foutafhandeling met or die() is natuurlijk ook zeer slecht
 
Kristof Hendrickx

Kristof Hendrickx

30/08/2013 18:29:45
Quote Anchor link
Jeroen VD op 30/08/2013 13:42:00:
Het Date Field inderdaad.

verder is een md5() een slechte encryptiemethode... welke wel het beste is staat ter discussie, maar ik gebruik altijd sha256()
foutafhandeling met or die() is natuurlijk ook zeer slecht

Welke foutdetectie kan ik dan gebruiken?

En de encryptiemethode, kan ik deze dan ook terug oproepen met sha256? (voor mensen die inloggen, controle of het juist is)

Aangezien dit oftopic gaat zal ik je even in privebericht contacteren ;)
 
Jeroen VD

Jeroen VD

30/08/2013 18:36:08
Quote Anchor link
doe je ding, maar dit is wel een redelijk ontopic discussie.

het hele punt van encryptie is dat je het origineel niet meer terug kan halen zonder de juiste sleutel. vaak is een toevoeging van een salt al heel wat sterker, en moet je steeds bij elke inlogpoging opnieuw encrypten, en die vergelijken met wat aanwezig is in de database.

en, wanneer er een fout optreedt is het een slecht plan alles dood te laten gaan, simpelweg een melding geven dat de query mis is gegaan voldoet ook. dat er een fout is opgetreden en nogmaals proberen, contact opnemen ed.
 



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.