You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP用$_SESSION实现购物车时无法正确打印$_SESSION['cart']商品

问题修复方案

核心错误点

  • 会话初始化顺序错误:session_start() 必须在所有页面输出(包括引入文件的输出、空格、换行等)之前调用,你当前展示购物车的代码先引入了navbar.php,会导致会话读取失败
  • 关联数组输出逻辑错误:存入$_SESSION['cart']的每个元素都是包含pid、name的关联数组,PHP不支持直接echo输出数组,需要读取对应键的值输出

修正后代码

购物车商品添加逻辑(补充基础参数校验)

<?php 
session_start();
 
if(!isset($_SESSION['cart'])){
  $_SESSION['cart'] = array();
}

// 校验pid合法性避免非法提交
if(isset($_POST['pid']) && is_numeric($_POST['pid'])){
  $item = array(
    "pid" => $_POST['pid'], 
    "name" => "bloom flowers"
  );
  array_push($_SESSION['cart'], $item);
  echo "Done!";
}
?>

购物车商品展示逻辑

<?php 
// 会话初始化必须放在代码最顶部,早于所有输出内容
session_start();
include 'navbar.php';

if(isset($_SESSION['cart']) && !empty($_SESSION['cart'])){
  foreach ($_SESSION['cart'] as $item){
    // 读取关联数组对应键的值输出
    echo '<h5>商品ID:'.$item['pid'].' 商品名称:'.$item['name'].'</h5>';
  }
} else {
  echo '<h5>购物车为空</h5>';
}
?>

内容的提问来源于stack exchange,提问作者Safina Siddique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:36:02