【问题标题】:Unset going off too early取消设置太早
【发布时间】:2016-06-26 05:53:23
【问题描述】:

我有以下代码

问题在于 unset($_SESSION['variable']); 不仅取消了整个 $_SESSION 的设置,而且还停止了自己的 if 语句运行,因为 echo 或调用的函数都没有做任何事情,如果删除了未设置的行,这两个都可以正常工作.

if ( isset($_SESSION['variable']) ) {
    echo 'yay';
    $boxes['error'] = $this->function($_SESSION['variable']);
    unset($_SESSION['variable']);
}

我从来没有见过这个

【问题讨论】:

  • Unset 基本上完成了变量。您应该做的只是删除该值。并检查变量是否为空。
  • 我发现这是因为我没有将exit(); 行添加到另一个页面上的header('location: ') 调用中,因此会话已经被取消设置。所以这个 if 语句现在可以正常工作了
  • @milky_jay:感谢您的评论。它帮助我解决了 Wordpress 中的一个问题,即我的会话未设置得太早,因为我没有在 wp_safe_redirect 之后添加 exit();。也许这也有助于某人:)。

标签: php session-variables unset


【解决方案1】:

使用

if (!empty($_SESSION['variable']) ) {
    echo 'yay';
    $boxes['error'] = $this->function($_SESSION['variable']);
    $_SESSION['variable'] = '';
}

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多