【问题标题】:Cannot access session variables when debug is set to 0调试设置为 0 时无法访问会话变量
【发布时间】:2014-07-03 01:19:41
【问题描述】:

我有一个奇怪的问题,我的应用程序运行正常,调试设置为 1 或 2 但不是 0。

我想将 prod 服务器设置为 debug 0 (core.php Configure::write('debug', 0);)。

我们编写了一个安全模块,它使用 LDAP 对我们的 ActiveDirectory 服务器进行身份验证。这工作正常,并将用户详细信息保存在会话变量 $_SESSION['Security_Details'] 中。

private function restoreAuthenticationDetails(){
    if(isset($_SESSION['Security_Details'])){
        $security_details = json_decode($_SESSION['Security_Details']);

        $this->firstName = $security_details->firstName;
        $this->lastName = $security_details->lastName;
        $this->uNumber = $security_details->uNumber;
        $this->systems_management = $security_details->systems_management;
        $this->loggedin = 1;
    }else{
        $this->loggedOut();
    }
}

在调试 1 中,我看到 $_SESSION['Security_Details'] 包含以下内容:

"{"firstName":"Duane","lastName":"Walker","uNumber":"uXXXXXXX"}"

但使用 debug 0 我得到的只是 NULL。

这似乎是一项安全功能,还是不打算这样做。

如何在调试 0 下启用对会话变量的访问?

【问题讨论】:

  • 我看到有一个我应该使用的 SessionComponent。
  • 要么,要么CakeSession,以防你不在控制器中。

标签: cakephp cakephp-2.4


【解决方案1】:

使用此方法在 CakePHP 中创建或读取会话:

  $this->Session->write("my_session", "123"); //how to create a session
  $this->Session->read("my_session"); //will return 123 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 2011-11-13
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 2017-07-21
    相关资源
    最近更新 更多