dkpage
@dkpage
Учусь

Как сделать проверку на существующего пользователя?

То ошибка, то создает еще раз пользователя. В чем ошибка?
spoiler
<?php
    session_start();
    require_once 'connect.php';

    $full_name = $_POST['full_name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $password_confirm = $_POST['password_confirm'];

    $result = mysqli_query($connect, "SELECT * FROM users WHERE `phone` = '".$phone."'");

    if(@mysqli_num_rows($result) > 0 )
    {  
        $_SESSION['message'] = 'Такой пользователь уже существует!';
    }
    
    if ($password === $password_confirm) {

        $path = 'uploads/' . time() . $_FILES['avatar']['name'];
        if (!move_uploaded_file($_FILES['avatar']['tmp_name'], '../' . $path)) {
            $_SESSION['message'] = 'Ошибка при загрузке сообщения';
            header('Location: ../register.php');
        }


        $password = md5($password);

        mysqli_query($connect, "INSERT INTO `users` (`id`, `full_name`, `phone`, `password`, `avatar`) VALUES (NULL, '$full_name', '$phone', '$password', '$path')");

        $_SESSION['message'] = 'Регистрация прошла успешно!';
        header('Location: ../index.php');


    } else {
        $_SESSION['message'] = 'Пароли не совпадают';
        header('Location: ../register.php');
    }

?>
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
Spartak-2205
@Spartak-2205
Разработка и создание сайтов
По логике работы вашего кода, должно быть так, если уже есть юзер с такими данными (телефон), то прекращаем дальнейшее выполнение кода
if (mysqli_num_rows($result) > 0 ) {
	$_SESSION['message'] = 'Такой пользователь уже существует!';
	header('Location: ../register.php');
	exit;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы