Я создал систему регистрации и входа! Там нет проблем с регистрацией. Я ввожу желаемое имя пользователя, желаемый адрес электронной почты, желаемый пароль и нажимаю ввод, после нажатия на кнопку ввода, я захожу на домашнюю страницу. Проблема заключается в том, что когда я нажимаю кнопку выхода и когда кнопка «Выход» переводит меня на страницу входа в систему, и когда я повторно ввожу имя пользователя и пароль, я получаю ошибку «неверное имя пользователя или пароль».
if (isset($_POST['register'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$password = mysqli_real_escape_string($db, $_POST['password']);
$repeatpassword = mysqli_real_escape_string($db, $_POST['repeatpassword']);
$username_checker = "SELECT * FROM users WHERE username='$username'";
$email_checker = "SELECT * FROM users WHERE email='$email'";
$name_checker = mysqli_query($db,$username_checker) or die(mysqli_error($db));
$mail_checker = mysqli_query($db,$email_checker) or die(mysqli_error($db));
if(empty($username)){
array_push($errors,"Username is required");
return;
}
if(empty($email)){
array_push($errors,"Email is required");
return;
}
if(empty($password)){
array_push($errors,"Password is required");
return;
}
if(mysqli_num_rows($name_checker) > 0){
array_push($errors,"Username is already recorded in our database");
return;
}
if(mysqli_num_rows($mail_checker) > 0){
array_push($errors,"Email Address is already recorded in our database");
return;
}
if(!preg_match("/^[a-zA-Z ]*$/",$username)){
array_push($errors,"The username is only derived from uppercase and lowercase characters");
return;
}
if(strlen($_POST['username']) < 5){
array_push($errors,"Username must be at least 5 characters long");
return;
}
if(strlen($_POST['username']) > 8){
array_push($errors,"Username must contain a minimum of 5 characters or a maximum of 12 characters");
return;
}
else if(strlen($_POST['username']) > 12){
array_push($errors,"Username must contain a minimum of 5 characters or a maximum of 12 characters");
return;
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
array_push($errors,"Invalid email format");
return;
}
if(strlen($_POST['password']) < 8){
array_push($errors,"The password must contain a minimum of 8 or a maximum of 16 characters");
return;
}
else if(strlen($_POST['password']) > 16){
array_push($errors,"The password must contain a minimum of 8 or a maximum of 16
characters");
return;
}
if($password != $repeatpassword){
array_push($errors,"");
return;
}
if(count($errors) == 0){
$password = password_hash($password,PASSWORD_BCRYPT);
$sql = "INSERT INTO users (username, email, password)
VALUES ('$username','$email','$password')";
mysqli_query($db,$sql);
$_SESSION['username'] = $username;
$_SESSION['success'] = " Welcome ".$username." ";
$_SESSION['profile_name'] = $username;
header('location: index.php');
}
}
if (isset($_POST['login'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$password = mysqli_real_escape_string($db, $_POST['password']);
if(empty($username)){
array_push($errors,"Username is required");
return;
}
if(empty($password)){
array_push($errors,"Password is required");
return;
}
if(count($errors) == 0){
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($db,$query);
if(mysqli_num_rows($result) > 0){
if(password_verify($password)){
$_SESSION['username'] = $username;
$_SESSION['success'] = " Welcome Back ".$username;
$_SESSION['profile_name'] = $username;
header('location: index.php');
}
}
else{
array_push($errors,"incorrect username or password");
}
}
}