Werk aan je indenting, want dit staat er feitelijk:
Code:
if(isset($_POST['submit'])) {
$username = $_POST['username'];
if($_POST['password'] == $_POST['passwordConfirm']) {
$password = $_POST['password'];
}
else {
echo "Wachtwoorden kwamen niet overeen";
}
}
Bijgevolg voert ie gewoon die query ed. uit, want die volgen daarna, en staan niet in die else clausule. Password hoeft niet geset te zijn, hij wordt gewoon null, afhankelijk van hoe je DB geconfigureerd is gewoon geslikt. Wat je bij dit soort programmatjes kunt doen is een array $errors aanmaken, waar je errors in plaatst. Bij geen errors voert ie de code uit, en anders geeft ie de errors weer, dus dan krijg je bijv.:
Code:
if($_POST['password'] != $_POST['passwordConfirm']) {
$errors[] = "Wachtwoorden komen niet overeen";
}
Merk op dat bij het niet vermelden van een index de eerst volgende wordt gepakt, i.e. bij 0 entries wordt 0 als index/key gebruikt, bij 2 entries (0 en 1) wordt 2 gebruikt als index. Vervolgens kun je dan dus checken:
Code:
if(empty($errors)) { // alles ging goed
}
else {
echo '';
foreach($errors as $error) {
echo '' . $error . '';
}
echo '';
}
Tevens: werk liever met de PDO extensie i.p.v. mysqli.