带有PDO的PHP登录代码中的错误在哪里?

时间:2015-12-22 20:37:29

标签: php mysql authentication mysqli pdo

这是我写的登录脚本。我使用crypt()来存储散列密码。

<?php

$db = new mysqli ('localhost','bla','bla','bla');
if(isset($_POST['submit_form'])){

$username = $_POST['username'];
$password = $_POST['password'];
$username2 = mysqli_real_escape_string($db, $_POST['username']);
$sql = "SELECT * FROM users WHERE username=:username";
$stmt = $db->prepare($sql);
$stmt->bindValue(':username',$username,PDO::PARAM_STR);

if($stmt->execute())
{
    if($stmt->rowCount() == 1)
    {
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

     if (crypt($password, $row['pass']) === $row['pass'])
        {

            session_start();
            $_SESSION['user'] = $username2;
            $_SESSION['notification'] = 'blabla';
            header('location:/someplace');

        }
        else
        {
              session_start();
              $_SESSION['not'] = 'wrong';
              header('location:/someplace');  
        }
    }
    else
    {
          session_start();
          $_SESSION['not'] = 'wrong';
          header('location:/someplace');  
    }
}
}
else {

    header('location:/ss');
}

?>

我试图解决这个问题很长一段时间。但它没有产生任何结果。通过许多答案搜索,尝试了5-6种不同的方法。还是行不通。我是第一次使用PDO。在此之前,我只使用mysqli_real_escape_string(),它运行正常。

0 个答案:

没有答案
相关问题