Проверка пароля Php и подтверждение пароля - PullRequest
1 голос
/ 12 апреля 2019

Я делаю что-то вроде Instagram, и поэтому мне нужна страница регистрации. Я хочу, чтобы пароль был равен или длиннее 8 символов, и если пароль и подтверждение пароля совпадают.

Я пытался создать новый класс Security или попробовать - поймать.

register.php

if ( !empty($_POST)) {

    $user = new User();
        $user->setFullname($_POST['fullname']);
        $user->setUsername($_POST['username']);        
        $user->setEmail($_POST['email']);
        $user->setPassword($_POST['password']);
        $user->setPasswordConfirmation($_POST['password_confirmation']);

        if( $user->passwordsAreSecure()) {
                if($user->register()) {
                    session_start();
                    $_SESSION['email'] = $user->getEmail();
                    header('location: index.php');
                } else {
                    $error = true;  
                }
        } else {
            $error2 = true;
        }
    }

Мой пользовательский класс

public function passwordIsStrongEnough(){
                if( strlen( $this->password ) <= 8 ){
                    return false;
                }
                else {
                    return true;
                }
        }
        public function passwordsAreEqual(){
                if( $this->password == $this->passwordConfirmation ){
                    return true;
                }
                else {
                    return false;
                }
        }

        public function passwordsAreSecure(){
                if( $this->passwordIsStrongEnough() 
                    && $this->passwordsAreEqual() ){
                    return true;
                }
                else {
                    return false;
                }
        }

регистр функций

public function register() {

                $password = Security::hash($this->password);

                try {
                    $conn = Db::getInstance();
                    $statement = $conn->prepare('INSERT INTO users (fullname, username, email, password) values (:fullname, :username, :email, :password)');
                    $statement->bindParam(':fullname', $this->fullname);
                    $statement->bindParam(':username', $this->username);
                    $statement->bindParam(':email', $this->email);
                    $statement->bindParam(':password', $password);  
                    $result = $statement->execute();
                    return($result);

                } catch ( Throwable $t ) {
                    return false;

                }

        }

Я хочу добраться до if( $user->passwordsAreSecure()) {, чтобы был сеанс, но теперь поля формы становятся пустыми и ничего не происходит.

1 Ответ

0 голосов
/ 12 апреля 2019

Мне не понятно, где у тебя проблемы.Вы не задали ни одного вопроса ... Но вы можете сделать весь свой код так:

if (!empty($_POST)) {
    $user = new User();
    $user->setFullname($_POST['fullname']);
    $user->setUsername($_POST['username']);        
    $user->setEmail($_POST['email']);
    $user->setPassword($_POST['password']);
    $user->setPasswordConfirmation($_POST['password_confirmation']);

    if ($_POST['password'] == $_POST['password_confirmation'] 
            && strlen($_POST['password']) > 8) {
        if ($user->register()) {
            session_start();
            $_SESSION['email'] = $user->getEmail();
            header('location: index.php');
        } else {
            $error = true;  
        }
    } else {
        $error2 = true;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...