无法回应会话客户的价值我会

时间:2015-04-28 07:00:48

标签: php

我真的不知道这里发生了什么,我很沮丧地调试这个。 我验证了我输入的详细信息,但登录只是返回index.php而没有错误消息,而应该转到order.php。

session_start();

if(isset($_SESSION['customer_loggedin']))
{
    header('Location:order.php');
}

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    include 'php/db_config.php';

    $login = trim($_POST['login']);
    $password = trim($_POST['password']);

    if($login && $password)
    {
        $sql = "SELECT * FROM customer WHERE (code=:code OR phone=:phone OR businessName=:businessName OR email=:email) AND password=:password";
        $stmt = $conn->prepare($sql);
        $stmt->bindValue(':code', $login, PDO::PARAM_STR);
        $stmt->bindValue(':phone', $login, PDO::PARAM_STR);
        $stmt->bindValue(':businessName', $login, PDO::PARAM_STR);
        $stmt->bindValue(':email', $login, PDO::PARAM_STR);
        $stmt->bindValue(':password', $password, PDO::PARAM_STR);
        $stmt->execute();

        if($stmt->rowCount() == 1)
        {
              $id = $row['id'];
              $_SESSION['customer_loggedin'] = 1; 
              $_SESSION['customer_id'] = $id;
            header('location:order.php');
        }
        else
            {
            header('Location:index.php');
            $_SESSION['errmsg'] = 'Incorrect Login Details';
            die;
        }
    }
}

我无法回显客户ID中的会话值ID。

这里的原因是我希望以后能够使用登录的用户ID从表中选择一些东西。

1 个答案:

答案 0 :(得分:1)

根据您的代码,问题在于您尝试在会话中存储未定义的变量。

$_SESSION['customer_id'] = $id; //$id = $row['id']

我认为$ row意味着您的查询结果,但您只是没有获取它。 <{1}}未定义,$row也未定义。

您应该添加以下代码以获取查询结果:

$row['id']

在条件之后:

$row = $stmt->fetch(PDO::FETCH_ASSOC);