2011-04-19 70 views
0

会话ID是空的,当我做:pr($this->Session); 我收到:CakePHP的会话ID空

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?

回答

5

如果你真的想要一个会话ID,你需要启动会话。当你pr($this->Session->id());你会看到新的会话ID

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

然后:在您的面前过滤器试试这个。

+0

谢谢伯吉斯,正是我需要的! – 2011-04-19 18:20:18

+0

没问题!乐意效劳! – 2011-04-19 20:30:56

+0

感谢'session_id()'。我无法在任何地方找到它。真的需要开始会话吗?它可能在我写入会话时自动启动? – 2014-04-25 18:36:26

2

它被Cake被动地照顾 - 你不需要设置它。只需调用read(),write()就可以了。

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

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

只需使用

回声$这个 - >会话级> ID(); //打印像7gl7bo9gv38rj0sjtqo52dkeu5

在控制器中。没有必要开始()或其他东西。 CakePHP(在2.7中测试)自动为您提供。