当debug设置为0时,无法访问会话变量

时间:2014-07-03 01:19:41

标签: cakephp cakephp-2.4

我有一个奇怪的问题,我的应用程序运行正常,调试设置为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();
    }
}

使用debug 1,我看到$ _SESSION [' Security_Details']包含以下内容:

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

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

这似乎是一个安全功能,或者它不打算像这样。

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

1 个答案:

答案 0 :(得分:0)

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

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