使用$ _SESSION的参数无效

时间:2013-03-12 21:48:03

标签: php wordpress session-variables

我正在测试我为我的客户创建的一个小wordpress插件,我在我测试的其中一台计算机上遇到了问题。我想它可能没有保存$_SESSION数据......

它为这个foreach()

提供了一个无效的参数
foreach ($_SESSION['page-1'] as $key => $value) {
    $score += $value * 2;
}

关于这一点的奇怪之处在于它适用于我的桌面和笔记本电脑,但不适用于我正在测试的第二个桌面。

基本上foreach()所做的是从上一页获取$_SESSION信息,然后将其转换为当前页面的新变量。

1 个答案:

答案 0 :(得分:1)

您的会话变量$_SESSION['page-1']似乎不是数组。 只需在进入foreach之前检查它:

if (is_array($_SESSION['page-1'])) {
    foreach (...) {
        ...
    }
}

它是以下任何一种:

  • 您没有在任何地方将$_SESSION['page-1']设置为数组,但与任何其他类型一样。
  • 您忘记启动会话(使用session_start),或者您的脚本中存在逻辑错误导致$_SESSION['page-1']无法设置或在某些时候未设置,从而导致{{1触发错误。

请记住:您必须以:

开始会话
foreach (NULL as ...)

每次您尝试获取或设置会话变量。否则,您只是设置或检索未定义的变量。