我真的不知道这里发生了什么,我很沮丧地调试这个。 我验证了我输入的详细信息,但登录只是返回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从表中选择一些东西。
答案 0 :(得分:1)
根据您的代码,问题在于您尝试在会话中存储未定义的变量。
$_SESSION['customer_id'] = $id; //$id = $row['id']
我认为$ row意味着您的查询结果,但您只是没有获取它。 <{1}}未定义,$row
也未定义。
您应该添加以下代码以获取查询结果:
$row['id']
在条件之后:
$row = $stmt->fetch(PDO::FETCH_ASSOC);