Check if username exists PDO

后端 未结 3 445
醉话见心
醉话见心 2020-12-18 10:45

How would I be able to check multiple factors combined instead of checking for each one? So basically I\'m using PDO and I have to make sure that the usernames and emails ar

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-18 11:06

     setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e){
        exit($e->getMessage());
    }
    
    $name = $_POST['name']; 
    $username = $_POST['username']; 
    $email = $_POST['email'];   
    $password = $_POST['password']; 
    $password1 = $_POST['passwordconf'];
    $ip = $_SERVER['REMOTE_ADDR'];
    
    
    //Verifcation 
    if (empty($name) || empty($username) || empty($email) || empty($password) || empty($password1)){
        $error = "Complete all fields";
    }
    
    // Password match
    if ($password != $password1){
        $error = "Passwords don't match";
    }
    
    // Email validation
    
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)){
        $error = "Enter a  valid email";
    }
    
    // Password length
    if (strlen($password) <= 6){
        $error = "Choose a password longer then 6 character";
    }
    
    if(!isset($error)){
    //no error
    $sthandler = $handler->prepare("SELECT username FROM users WHERE username = :name");
    $sthandler->bindParam(':name', $username);
    $sthandler->execute();
    
    if($sthandler->rowCount() > 0){
        echo "exists! cannot insert";
    } else {
        //Securly insert into database
        $sql = 'INSERT INTO userinfo (name ,username, email, password, ip) VALUES (:name,:username,:email,:password,:ip)';    
        $query = $handler->prepare($sql);
    
        $query->execute(array(
    
        ':name' => $name,
        ':username' => $username,
        ':email' => $email,
        ':password' => $password,
        ':ip' => $ip
    
        ));
        }
    }else{
        echo "error occured: ".$error;
        exit();
    }
    

提交回复
热议问题