PHP [PDO]登录脚本代理

时间:2016-12-09 15:12:45

标签: php mysql pdo password-hash

我喜欢PHP,但有时它真的很烦人。

我在这里有一个登录脚本:

<?php
session_start();
require_once("include/database.php");

if (isset($_POST['submit'])) {
    $errMsg = '';
    //username and password sent from Form
    $username = $_POST['user_login'];
    $password = $_POST['user_password'];

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

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


    if ($errMsg == '') {
        $records = $db->prepare('SELECT user_id ,user_login ,user_password FROM users WHERE user_login = :username');
        $records->bindParam(':username', $username  );
        $records->execute();
        $results = $records->fetch(PDO::FETCH_ASSOC);
        if (count($results) > 0 && password_verify($password, $results['user_password'])) {
            $_SESSION['user_login'] = $results['user_login'];
            header('location:test.php');
            exit;
        } else {
            $errMsg .= 'Username and Password are not found<br>';
        }
    }
}
?>

但每次我尝试登录时,都会让我失望。并在底部弹出错误消息。

我的密码被哈希,所以我在 password_verify

中看不到问题

我的用户表遵循以下设置:

表格布局

enter image description here

诀窍是,如果我删除 password_verify 我的代码可以正常工作,但它不会检查用户是否存在并在该页面上传递任何值。

提前致谢!

0 个答案:

没有答案