HellCode
@HellCode
Новичок в мире программирования :]

Как проверить занятость ника?

Суть проблемы такова, есть исходник регистрации пользователя (исходник не мой)
Не могу реализовать функцию.. проверить есть такой username в базе или нет.
Если есть - продолжать регистрацию, нет - ошибка что пользователь существует.
При этом в исходнике есть функция find где проверяется email(она работает), пытался с ней поиграться, но нечего не выходит.
public static function find($email, $return_assoc = false){
        $con = DB::getConnection();
        $email = (String) Filter::String( $email );
        // Make sure the user does not exist. 
		$findUser = $con->prepare("SELECT user_id,password FROM users WHERE email = LOWER(:email) LIMIT 1");
		$findUser->bindParam(':email', $email, PDO::PARAM_STR);
        $findUser->execute();

        if ($return_assoc) {
            return $findUser->fetch(PDO::FETCH_ASSOC);
            # code...
        }
        $userFound = (boolean) $findUser->rowCount;
         return $userFound;
    }


обработчик:
if($_SERVER['REQUEST_METHOD'] == 'POST') {
		// Always return JSON format
		// header('Content-Type: application/json');

		$return = [];
		
		$username =  Filter::String( $_POST['username'] );

		$email = Filter::String( $_POST['email'] );
		
		$userFound = User::find($email, true);

		if($userFound) {
			// User exists 
			// We can also check to see if they are able to log in. 
			
			
			$return['error'] = "You already have an account";
			$return['is_logged_in'] = false;
		} else {
			// User does not exist, add them now. 
			
			$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
			
			
			$addUser = $con->prepare("INSERT INTO users(username, email, password) VALUES(LOWER(:username), :email, :password)");
			$addUser->bindParam(':username', $username, PDO::PARAM_STR);
			$addUser->bindParam(':email', $email, PDO::PARAM_STR);
			$addUser->bindParam(':password', $password, PDO::PARAM_STR);
			$addUser->execute();

			$user_id = $con->lastInsertId();

			$_SESSION['user_id'] = (int) $user_id;

			$return['redirect'] = '../index.php';
			$return['is_logged_in'] = true;
		}
  • Вопрос задан
  • 244 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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