为什么我的登录返回未定义的密码索引?

时间:2016-10-03 02:03:43

标签: php mysql pdo login

感谢您的提前时间。

我正在构建一个带有登录功能的应用。在我的概念证明中,我使用了一些旧的PHP,但后来我意识到我很容易受到SQL注入,所以我切换到了PDO。

我完全是PDO,所以我不完全理解我的代码如何工作;)。我收到错误告诉我在第24行和第34行有一个未定义的密码索引。你能告诉我什么是错的,我该怎么办?

这是我的代码:

if ( isset ( $_POST ['loginButton'] ) ) {

    $errMsg = '';

    //username and password sent from Form
    $username = trim ( $_POST ['username'] ) ;
    $password = sha1 (  trim ( $_POST ['password'] ) ) ;

    if ( empty ( $username ) ) {
        $errMsg .= 'You must enter your Username<br>';
    }

    elseif ( empty ( $password ) ) {
        $errMsg .= 'You must enter your Password<br>';
    }


    elseif ( $errMsg == '' ) {

        $records = $databaseConnection->prepare ( 'SELECT * FROM  users WHERE email = :username' ) ;
        $records->bindParam ( ':username', $username ) ;
        $records->execute () ;

        $results = $records->fetch ( PDO::FETCH_ASSOC ) ;

        if ( count ( $results ) > 0 && password_verify ( $password, $results ['password'] ) ) {

            header ( 'location:dashboard.php' ) ;
            exit;

        }

        else {
                $errMsg .= 'Username and Password are not found<br>';
        }

    }

}

0 个答案:

没有答案