Я пытаюсь создать форму регистрации / входа в систему с помощью PHP (PHP 7.2.10), сейчас я просто пытаюсь добавить новых пользователей в свою БД и войти в систему с одним из пользователей.
<?php
//Connecion to the DB
try {
$bdd = new PDO('mysql:host=localhost; dbname=dbtest; charset=utf8', 'root', '123456');
} catch (Exception $e) {
echo "Error: ".$e;
}
//Registration form
//variables definition
if(isset($_POST['registration'])){
$name = $_POST['name'];
$first_name = $_POST['first_name'];
$nickname = $_POST['nickname'];
$age = $_POST['age'];
$sex = $_POST['sex'];
$passwd = $_POST['passwd'];
$passwd2 = $_POST['passwd2'];
$email = $_POST['email'];
$address = $_POST['address'];
$date = date('d/m/Y');
//checking mandatory fields are filled
if(!empty($nickname) AND !empty($email)){
//checking entered email is valid
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
//confirming password
if($passwd == $passwd2){
// checking the entered email address doesnt already exist in the DB
$TestEmail = $bdd->query('SELECT id FROM test WHERE email = "'.$email.'"');
if($TestEmail->rowCount() < 1 ){
$bdd->query('
INSERT INTO test
(name, first_name, sex, nickname, age, address, email, passwd)
VALUES
("'.$name.'", "'.$first_name.'", "'.$sex.'", "'.$nickname.'", "'.$age.'", "'.$address.'", "'.$email.'", "'.$passwd.'", "'.$date.'")
');
} else $return = "There is already a user registered with this email address";
} else $return = "Entered passwords are not matching";
} else $return = "Please enter a valid email address";
} else $return = "At least one field is missing";
}
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Registration/Login form</title>
</head>
<body>
<?php if(isset ($_POST['registration']) AND isset($return)) echo $return; ?>
<!-- Registration/login form -->
<form action="" method="POST">
<input type = "text" name = "name" placeholder = "Name"><br>
<input type = "text" name = "first_name" placeholder = "First Name"><br>
<input type = "text" name = "nickname" placeholder = "Nickname"><br>
<input type = "text" name = "age" placeholder = "Age"><br>
<select name = "sex" placeholder = "Sex"><br>
<option value = "Male">Male</option>
<option value = "Female">Female</option>
</select><br>
<input type = "text" name = "address" placeholder = "Address"><br>
<input type = "email" name = "email" placeholder = "Email address"><br>
<input type = "password" name = "passwd" placeholder = "Your Password"><br>
<input type = "password" name = "passwd2" placeholder = "Confirm your Password"><br>
<input type="submit" name = "registration" value="Register">
</form>
<hr>
<?php if(isset ($_POST['login']) AND isset($return)) echo $return; ?>
<form action="" method="POST">
<input type = "email" name = "email" placeholder = "Email address"><br>
<input type = "password" name = "mdp" placeholder = "Your Password"><br>
<input type="submit" name = "login" value="Log in">
</form>
</body>
</html>
Когда я пытаюсь зарегистрировать нового пользователя, я заполняю все поля, затем нажимаю «зарегистрироваться», но ничего не происходит, он просто очищает все поля, и никаких данныхвставлен в мою базу данных, хотя я не получаю сообщение об ошибке.
При попытке войти в систему, в верхней части формы появляется следующая ошибка: «Примечание: неопределенный индекс: passwd inC: \ wamp64 \ www \ Hakikar \ index.php в строке 61 "и, кроме того, сообщение" По крайней мере, одно поле отсутствует ", хотя я заполнил поля электронной почты и пароль