Суть проблемы такова, есть исходник регистрации пользователя (исходник не мой)
Не могу реализовать функцию.. проверить есть такой 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;
}