Ваша ошибка в том, что ваше значение сообщения $_POST['psw']
, а ваш код ожидает $_POST['password']
.Либо измените форму HTML или код PHP так, чтобы значения были одинаковыми.
Ваш код очень сбивает с толку.Я сделал это немного проще, попробуйте это и посмотрите, если вы по-прежнему получаете ту же ошибку:
# Check to see if you're getting the right variables in the first place:
var_dump($_POST); //Remove once you're sure you're getting the right stuff
if(!$firstname = filter_input(INPUT_POST, 'firstname')){
die("First name should not be empty");
}
if(!$lastname = filter_input(INPUT_POST, 'lastname')){
die("Last name should not be empty");
}
if(!$email = filter_input(INPUT_POST, 'email')){
die("Email should not be empty");
}
if(!$password = filter_input(INPUT_POST, 'password')){
die("Password should not be empty");
}
$host = "127.0.0.1:3307";
$dbusername = "root";
$dbpassword = "";
$dbname = "register";
$conn = new mysqli($host, $dbfirstname, $dblastname, $dbemail, $dbpassword);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
$sql = "INSERT INTO Signup (firstname, lastname, email, password) values ('$firstname','$lastname','email','password')";
if (!$conn->query($sql)) {
echo "Error: " . $sql . "\r\n" . $conn->error;
$conn->close();
exit;
}
echo "New record is inserted successfully";
Общие рекомендации
- Не вкладывайте
if()
заявлений.Это делает следующий код очень запутанным. - Если логический результат прерывает сделку, сначала укажите этот результат в операторе if / else.Например, если запрос SQL завершится неудачно, сначала укажите отрицательный результат в операторе
if()
(что остановит ваш код) и пропустите оператор else все вместе. - Прокомментируйте свой код.