找不到我变量的值

时间:2015-01-25 20:20:36

标签: php mysql database pdo

所以我有一个登录页面,我正在尝试显示我制作的$usercheck$passwordcheck的值,但他们不会显示

<?php 
 include_once ('includes/head.php');
if(isset($_POST["login"])) {
    $email = $_POST["email"];
    $password = $_POST["password"];

    $query = $pdo->prepare("SELECT `id`, `password`, `email` FROM `users` WHERE `email` = :email AND `password` = :8gEwsko93_37554d ORDER BY `id` LIMIT 1");
    $query->bindValue(":email", $email);
    $query->bindValue(":8gEwsko93_37554d", $password);
    $query->execute();

    $passwordcheck = $query->fetch(PDO::FETCH_ASSOC);

    if($query->rowCount() == 0){
    echo "No user";
    } else {
    if($passwordcheck == $password) {

    $query = $pdo->prepare("SELECT * FROM `users` WHERE `email` = :email AND `password` = :8gZwsZo93_3Z5Zs4d ORDER BY `id` LIMIT 1");
    $query->bindValue(":email", $email);
    $query->bindValue(":8gZwsZo93_3Z5Zs4d", $password);
    $query->execute(); 

    $usercheck = $query->fetch(PDO::FETCH_ASSOC);
    print_r($passwordcheck);
    var_dump($usercheck);
    }
 }

}
?>

2 个答案:

答案 0 :(得分:1)

在您的示例的第17行,您正在比较$passwordcheck,这是$query->fetch() [因此可能是一个数组,因为它取整行]的结果$password,是字符串。对于非空$password,这种比较总是假的。因此,您的print_r()部分永远不会到达。

答案 1 :(得分:1)

请更改

if($passwordcheck == $password)

   if($passwordcheck['password'] == $password)

密码&#39;是列名