【问题标题】:How to get customers id from session php/mysqli? [duplicate]如何从会话 php/mysqli 中获取客户 ID? [复制]
【发布时间】:2018-12-26 23:21:14
【问题描述】:

我有一个创建$_SESSION['username']= $username$_SESSION['id'] = $id 的登录页面

现在我有一个购物车,我想获取该 ID,以便获取用户的其余信息

我试过$_SESSION['order'] = $_SESSION[id'];,但它不起作用。我还在学习 PHP,我不知道如何从那个会话中获取这些数据。

<?php 

include 'dbConfig.php';


include 'Cart.php';
$cart = new Cart;


if($cart->total_items() <= 0){
    header("Location: ");
}


$_SESSION['order'] = $_SESSION[id'];


$query = $db->query("SELECT * FROM members WHERE id = ".$_SESSION['id']);
$custRow = $query->fetch_assoc();
?>

【问题讨论】:

  • 检查这一行 $_SESSION['order'] = $_SESSION['id'];
  • 先尝试排错如下 echo '
    '; var_dump($_SESSION);回声'
    ';查看 id 是否设置一次。如果在会话中设置了 id,则将查询中的 $_SESSION 更改为静态 id,例如 8 并检查查询是否有效。希望您可以这样做抛出一些检查注意:查看是否需要启动会话
  • 您的代码包含已发布的解析错误。它也对 SQL 注入开放;使用准备好的语句。

标签: php sql session


【解决方案1】:

我相信你忘了把这个写在另一页的顶部。

session_start()

请写下来,然后检查一下

print_r($_SESSION)

【讨论】:

    【解决方案2】:

    您需要在页面顶部使用session_start()

    $_SESSION['order'] = $_SESSION[id']; 缺少单引号 将其替换为$_SESSION['order'] = $_SESSION['id'];

    <?php 
    session_start();
    include 'dbConfig.php';
    
    
    include 'Cart.php';
    $cart = new Cart;
    
    
    if($cart->total_items() <= 0){
        header("Location: ");
    }
    
    
    $_SESSION['order'] = $_SESSION['id'];
    
    
    $query = $db->query("SELECT * FROM members WHERE id = ".$_SESSION['id']);
    $custRow = $query->fetch_assoc();
    ?>
    

    注意:您必须确认会话值已设置,请回显 会话值并确认它不为空

    【讨论】:

    • 好的,我做到了,但仍然无法正常工作。我想我错误地创建了 $_SESSION['id']。
    猜你喜欢
    • 2014-07-24
    • 2011-10-22
    • 2022-01-21
    • 1970-01-01
    • 2012-01-31
    • 2018-03-25
    • 2013-05-24
    • 2022-06-16
    • 1970-01-01
    相关资源
    最近更新 更多