Php 具有$\u会话的参数无效

Php 具有$\u会话的参数无效,php,wordpress,session-variables,Php,Wordpress,Session Variables,我正在测试一个为我的一个客户创建的小wordpress插件,我在测试的一台计算机上遇到了一个问题。我想它可能没有保存$\u会话数据 它为这个foreach() 奇怪的是,它在我的台式机和笔记本电脑上都能工作,但在我测试的第二台台式机上却不能 基本上,foreach()所做的就是从上一页获取$\u SESSION信息,然后将其转换为当前页的新变量。您的SESSION变量$\u SESSION['page-1']似乎不是数组。 只需在进入foreach之前检查: if (is_array($_SES

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

它为这个
foreach()

奇怪的是,它在我的台式机和笔记本电脑上都能工作,但在我测试的第二台台式机上却不能


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

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

if (is_array($_SESSION['page-1'])) {
    foreach (...) {
        ...
    }
}
它可以是以下任一项:

  • 您没有在任何地方将
    $\u会话['page-1']
    设置为数组,而是将其设置为任何其他类型
  • 您忘记启动会话(使用
    session\u start
    ),或者您的脚本中存在逻辑错误,导致
    $\u session['page-1']
    在某个点未设置或未设置,因此导致
    foreach(NULL as…
    触发错误
记住:您必须从以下内容开始会话:

session_start();

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

脚本开头的Session_start()?是的。就像我说的,它可以在多个浏览器和多台计算机上正常工作,只是不能在一台计算机上运行一个浏览器。奇怪的是…这将消除错误消息-但错误消息是敌人,还是错误本身?是的,这将消除错误消息,但没有数组数据,脚本无法继续。有趣的是它在第二台桌面上的FireFox上执行,而不是在Internet Explorer上执行?是否可能是浏览器设置禁用$\u会话?我不认为这是因为其他网站功能正常…@CoryNickerson,与其禁用会话,还不如禁用cookies。检查
启用cookies
选项。一定是这样。(会话ID存储为cookie)。您知道我可以在浏览器中的何处检查cookie设置吗?
session_start();