SQL Error
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
jaja, lkkr duidelijk, dit is het stukje waar de query voor komt:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if(isset($_POST['Submit'])){
if(empty($_POST['username']) || empty($_POST['password'])){
echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
}else{
mysql_query("INSERT INTO `admin` ( `id` , `username` , `password` ) VALUES ( NULL , '".$_POST['username']."', SHA1( '".$_POST['password']."' ) ") or die (mysql_error());
echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
}
}
?>
if(isset($_POST['Submit'])){
if(empty($_POST['username']) || empty($_POST['password'])){
echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
}else{
mysql_query("INSERT INTO `admin` ( `id` , `username` , `password` ) VALUES ( NULL , '".$_POST['username']."', SHA1( '".$_POST['password']."' ) ") or die (mysql_error());
echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
}
}
?>
zoals je ziet staan er wel meer " in line 1, weet iemand waar het probleem zit?
edit:
of moet ik eerst een variable maken en dan pas die in me query gooien?
zoiets als $query = INSERT balabl
mysql_query($query) or die (mysql_error());
?
edit 2:
werkt ook niet :(
zoiets als $query = INSERT balabl
mysql_query($query) or die (mysql_error());
?
edit 2:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_POST['Submit'])){
if(empty($_POST['username']) || empty($_POST['password'])){
echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
}else{
$query = "INSERT INTO `admin` ( `id` , `username` , `password` ) VALUES ( NULL , '".$_POST['username']."', SHA1( '".$_POST['password']."' ) ";
mysql_query($query) or die (mysql_error());
echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
}
}
?>
if(isset($_POST['Submit'])){
if(empty($_POST['username']) || empty($_POST['password'])){
echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
}else{
$query = "INSERT INTO `admin` ( `id` , `username` , `password` ) VALUES ( NULL , '".$_POST['username']."', SHA1( '".$_POST['password']."' ) ";
mysql_query($query) or die (mysql_error());
echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
}
}
?>
werkt ook niet :(
Gewijzigd op 01/01/1970 01:00:00 door Aftertoucher
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if(isset($_POST['Submit'])){
if(empty($_POST['username']) || empty($_POST['password'])){
echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
}else{
$username = $_POST['username'];
$password = sha1($_POST['password'];
$query = mysql_query("INSERT INTO admin VALUES (NULL , '" . $username . "', '" . $password . "')");
if(!$query) {
echo mysql_error();
} else {
echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
}
}
}
?>
if(isset($_POST['Submit'])){
if(empty($_POST['username']) || empty($_POST['password'])){
echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
}else{
$username = $_POST['username'];
$password = sha1($_POST['password'];
$query = mysql_query("INSERT INTO admin VALUES (NULL , '" . $username . "', '" . $password . "')");
if(!$query) {
echo mysql_error();
} else {
echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
}
}
}
?>
Het is niet heel netjes ,maar wellicht werkt het en kan je het zelf opschonen.
Persoonlijk vind ik het overigens netter om eerst de query op te stellen en dan pas te versturen, zoals je zelf voorstelt. Maar in principe zou het niet uit moeten maken voor de werking van je script.
lijn 43 is hier:
$password = sha1($_POST['password'];
doe je ogen open en zie het zelf ook , dit heeft niets met PHP SQL errors te maken, dit is gewoon dom als je zoiets niet zelf ziet
$password = sha1($_POST['password']);
tip: gebruik die backtics (`) niet meer, dat zorgt voor irritatie en onduidelijkheid :) En op zich hoef je die velden ook niet aan te geven, tenzij je niet alle velden in wilt vullen (zo kan je 'id' weglaten bv.)
Edit:
En zorg er ook voor dat je input niet direct in een query invoert, maar zet het eerst om met htmlentities of een dergelijke functie. Dat zorgt er niet alleen voor dat (de meeste) schadelijke code niet meer uitgevoerd kan worden, het houdt je query ook nog eens korter :)
Dus ipv $_POST['username'] in je query, zet je het éérst om met $username = htmlentities($_POST['username']) en dan gooi je de variabele $username in de query.
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith
@aftertoucher , nee normaler kan ik dit niet zeggen. Is net als dat je zonder banden onder je auto probeerd weg te komen en dan zeuren hij doet het niet maarik weet niet wat het is