Ik heb in dit code mijn eige DB info ingevuld maar als ik het dan probeer op mijn site te registreren dan slaat die naam en wachtwoord niet op in DB maar hij creerd wel een regel zonder naam en wachtwoord.

<?php
if(isset($_POST["submit"])){

if(!empty($_POST['user']) && !empty($_POST['pass'])) {
	$user=$_POST['user'];
	$pass=$_POST['pass'];

	$con=mysql_connect('localhost','root','') or die(mysql_error());
	mysql_select_db('user_registration') or die("cannot select DB");

	$query=mysql_query("SELECT * FROM login WHERE username='".$user."'");
	$numrows=mysql_num_rows($query);
	if($numrows==0)
	{
	$sql="INSERT INTO login(username,password) VALUES('$user','$pass')";

	$result=mysql_query($sql);


	if($result){
	echo "Account Successfully Created";
	} else {
	echo "Failure!";
	}

	} else {
	echo "That username already exists! Please try again with another.";
	}

} else {
	echo "All fields are required!";
}
}
?>

Dan zijn $user en $pass dus leeg. Misschien gebruik je de verkeerde namen?

doe anders eens <?php print_r($_POST); ?>
Even een paar tips om je script te verbeteren:
- Gebruik if($_SERVER['REQUEST_METHOD']=="POST") { om te controleren of je formulier verstuurd is.
- Pas goede foutafhandeling toe op je query, zie ook deze voorbeelden in deze 'boiler-template'
- Gebruik bij voorkeur de functies van MySQLi, omdat de MySQL-functies (niet de database) aan de kant zullen gaan in de volgende versies.
- Kopiëer geen variabelen van elkaar, zoals $user = $_POST['user'], omdat je ten allertijde al beschikt over $_POST['user'].
- Controleer de input van je query met mysqli_real_escape_string() om hacking d.m.v. SQL-injection te voorkomen.
Kijk even naar de kleuren van je code.

Bij de select query is $user blauw weer gegeven, in de insert query is $user rood weer gegeven.
Hier kun je al uit op maken dat één van de twee niet goed is.

Wanneer ik het goed in schat gaar er iets niet goed met het gebruik van de (dubbel) quotes in de insert query.
Pipo Clown op 20/06/2014 18:11:56

Bij de select query is $user blauw weer gegeven, in de insert query is $user rood weer gegeven.
Hier kun je al uit op maken dat één van de twee niet goed is.


En toch zijn ze beiden technisch goed.
Niet consequent dat wel.
Helaas Pipo, maar dat klopt gewoon. In de select query is de variabel buiten quotes gehaald (en dus blauw), in de insert query staat de variabele binnen quotes (en derhalve rood). Beide zijn correct.

Reageren