首页 > 解决方案 > 尽管 session_start() 会话变量不持久,会话数组中的值消失

问题描述

这是我的代码:

<?php session_start();

if(empty($_SESSION['name'])){
  $_SESSION['name'] = array();
  $_SESSION['price'] = array();
  $_SESSION['qty'] = array();
  $_SESSION['pic'] = array();
}

array_push($_SESSION['qty'], $_POST['qty']);
   
$details = explode("|", $_POST['item']);

array_push($_SESSION['name'], $details[0]);
array_push($_SESSION['price'], $details[1]);
array_push($_SESSION['pic'], $details[2]);

//I have tested the values inside the array here with 'echo', and they were all existing.

header("Location: ../p4-cartcopy.php");

这是存储会话值的代码,我在此页面上测试过这些值确实存储在会话变量数组中。

但是,当我在不同的页面上使用以下代码对其进行测试时:

<?php session_start(); 
$namer = $_SESSION['name'][0];
if(isset($_SESSION['name'])) 
  echo $namer."hello";?>

我只能看到你好,但看不到之前存储在会话中的实际名称变量。似乎设置了会话变量,但数组为空。

任何帮助表示赞赏,谢谢。

标签: phpsessionshopping-cart

解决方案


推荐阅读