【问题标题】:php session variable is nullphp会话变量为空
【发布时间】:2014-03-24 14:34:44
【问题描述】:

我正在创建会话变量以将数据存储在对象数组中。该数组分配给会话。我稍后将向具有 id 的不同页面发送 get 调用,并希望从会话中访问相应的数据。但是我将数据设为空。这是我的代码

第 1 页:

session_start();
for ($i=0;$i<100;$i++){
    $object[$i]->name = $ret_obj[$i]['name'];
    $object[$i]->birthday_date = $ret_obj[$i]['birthday_date'];
    $_SESSION[$i] = $object[$i];
}

var_dump of session 正确打印会话变量。

现在在 for 循环中,我正在调用第 2 页:

page2.php?pid=$i

第 2 页:

session_start();
$pid = $_GET['pid'];
print_r($_SESSION[$pid]);
print_r($_SESSION);

我在 $_SESSION 中获得了价值,但在 $_SESSION[$pid] 中没有获得价值

【问题讨论】:

  • 哎呀,到处都是 pid……有点像粘贴了以前的版本。
  • 如果你 echo $pid 怎么办?你得到预期的结果了吗?
  • 它给出了正确的值...
  • 也许这是一个愚蠢的想法,但如果你存储$_SESSION["a$i"] 并使用pid=a$i 怎么办?也许有些东西弄乱了数字索引。
  • 你应该看看下面的帖子:stackoverflow.com/questions/18797251/…。为了澄清,请尝试添加字符前缀而不是仅使用数字。

标签: php session


【解决方案1】:

如果您在此处提供的代码就是全部,那么您的意思是:

$p13nid = $_GET['pid'];

而不是:

$pid = $_GET['pid'];

这会让它对你有用。

【讨论】:

    【解决方案2】:

    您应该看看以下帖子:Notice: Unknown: Skipping numeric key 1 in Unknown on line 0。为了澄清,请尝试添加字符前缀而不是仅使用数字。

    【讨论】:

    • 还将php.ini编辑成error_reporting = E_ALL | E_STRICT
    猜你喜欢
    • 2020-09-21
    • 2018-01-24
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    相关资源
    最近更新 更多