【问题标题】:cakephp session id Emptycakephp 会话 ID 为空
【发布时间】:2011-04-19 17:06:07
【问题描述】:

当我这样做时会话 id 为空:pr($this->Session); 我收到:

SessionComponent Object
(
    [__active] => 1
    [__bare] => 0
    [valid] => 1
    [error] => 
    [_userAgent] => 5343528de22b8a6d25e7fd391692c911
    [path] => /profiles
    [lastError] => 
    [security] => medium
    [time] => 800-452-3639
    [sessionTime] => 800-452-3639
    [cookieLifeTime] => 720000
    [watchKeys] => Array
        (
        )

    [id] => 
    [host] => xyz.org
    [timeout] => 
    [enabled] => 1
)

如何启用会话 ID 或创建会话 ID?

【问题讨论】:

    标签: php session cakephp cakephp-1.3


    【解决方案1】:

    如果你真的想要一个会话 id,你需要启动会话。在你的前置过滤器中试试这个:

    $this->Session->start();
    $this->Session->id(session_id());
    

    然后当您pr($this->Session->id()); 时,您将看到新的会话 ID。

    【讨论】:

    • 感谢session_id()。我在任何地方都找不到它的记录。真的需要开始会话吗?它是否会在我写入会话时自动启动?
    【解决方案2】:

    它由 Cake 被动处理 - 你不需要设置它。只需根据需要调用 read()、write()。

    $this->Session->write('key', $value);
    
    $value = $this->Session->read('key');
    

    【讨论】:

      【解决方案3】:

      随便用

      echo $this->Session->id(); //打印像 7gl7bo9gv38rj0sjtqo52dkeu5

      在控制器中。不需要 start() 或其他东西。 Cakephp(在 2.7 中测试)会自动为您提供。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-30
        • 1970-01-01
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多