SQL error door php

Status
Niet open voor verdere reacties.

indexspelen

Gebruiker
Lid geworden
17 mei 2008
Berichten
90
Ik heb een registerscript gemaakt voor mijn site,
Het werkt zonder de mysql_num_rows en de $user
+
dit is de error:
Code:
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

PHP:
<?php
$con = mysql_connect("localhost","indexspelen_be","ww");
mysql_select_db(indexspelen_be);
$user=mysql_query("SELECT * FROM users WHERE username=".$POST_['naam']."") or die(mysql_error());
if($_POST) {
 if($_POST['naam'] == "")
 {
 echo 'Voer een naam in.';
 }
 else if($_POST['paswoord'] == "")
 {
 echo 'Voer een wachtwoord in.';
 }
 else if(mysql_num_rows($user) > 0)
 {
 echo 'Naam bestaat al.';
 }
 else
 {
$sql="INSERT INTO users (username, password)
VALUES
('$_POST[naam]','$_POST[paswoord]')";

 if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
else 
{
echo "Je bent nu geregistreerd.";
}
}
}
mysql_close($con);
?>
<form action="" method="post">
naam <input type="text" name="naam"><br>
ww <input type="password" name="paswoord"><br>
<input type="submit" value="registreer">
</form>

Kan iemand me helpen :l?
 
Laatst bewerkt:
PHP:
mysql_select_db(indexspelen_be);
Moet waarschijnlijk zijn:

PHP:
mysql_select_db('indexspelen_be');
-----
PHP:
if($_POST){
moet zijn:

PHP:
if($_SERVER['REQUEST_METHOD'] == 'POST){
-----
PHP:
if($_POST['naam'] == "")
zou ik van maken:

PHP:
if(trim($_POST['naam']) == "")
aangezien men anders altijd nog een spatie kan ingeven (zo ook bij paswoord).
-----
PHP:
$sql="INSERT INTO users (username, password) VALUES ('$_POST[naam]','$_POST[paswoord]')";
zou ik van maken:

PHP:
$sql="INSERT INTO users (username, password) VALUES ('" . $_POST['naam'] . "','" . $_POST['paswoord'] . "')";
(variabelen altijd buiten quotes en array-keys die geen constants zijn tussen enkele quotes)
 
Dit heeft al een deeltje geholpen, de pagina is al zichtbaar,
Maar nu is dit het probleem als ik probeer te registreren met een naam die al bestaat.

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/indexspelen.be/indexspelen.be/httpd.www/registerfout.php on line 14
Je bent nu geregistreerd.

mysql_num_rows kan je toch wel gebruiken om de rijen die je bekomt na een query te tellen??
 
Als je van:

PHP:
$user=mysql_query("SELECT * FROM users WHERE username=".$POST_['naam']."")

nou eens dit maakt:

PHP:
$user=mysql_query("SELECT * FROM users WHERE username='" . $_POST['naam'] . "'")
 
Dan komt er dit leuk te staan:
Parse error: syntax error, unexpected T_IF in /customers/indexspelen.be/indexspelen.be/httpd.www/registerfout.php on line 5
 
Zo:

PHP:
<?php
$con = mysql_connect("localhost","indexspelen_be","itGTNnUv");
mysql_select_db(indexspelen_be);
$user=mysql_query("SELECT * FROM users WHERE username='" . $_POST['naam'] . "'")  
if($_POST) {
 if(trim($_POST['naam']) == "") 
 {
 echo 'Voer een naam in.';
 }
 else if($_POST['paswoord'] == "")
 {
 echo 'Voer een wachtwoord in.';
 }
 else if(mysql_num_rows($user) > 0)
 {
 echo 'Naam bestaat al.';
 }
 else
 {
$sql="INSERT INTO users (username, password)
VALUES
('$_POST[naam]','$_POST[paswoord]')";

 if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
else 
{
echo "Je bent nu geregistreerd.";
}
}
}
mysql_close($con);
?>
<form action="" method="post">
naam <input type="text" name="naam"><br>
ww <input type="password" name="paswoord"><br>
<input type="submit" value="registreer">
</form>
 
PHP:
$user=mysql_query("SELECT * FROM users WHERE username='" . $_POST['naam'] . "'")

daar had je net nog

PHP:
or die(mysql_error());

achter staan. Je moet nu of dat er weer achter zetten of een ;
 
That does the job :D

Merci joh,
Kheb wel al die quotes enzo gelaten,
Dat was namelijk niet nodig en dus extra werk ^^
Misschien wel nuttiger voor beter overview te hebben, dat wel.
Maar eenmaal een code werkt ga ik er meestal toch niet op terug.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan