如果我在我的page.ctp中执行了print_r($ _ SESSION),我得到:
Array
(
[Config] => Array
(
[userAgent] => b3346028c15f82ac5d4b25c4f50d8718
[time] => 1281034201
[timeout] => 100
)
[manualLogout] => 1
[Message] => Array
(
)
[Auth] => Array
(
[redirect] => /events/add/controller:events
)
[facebookSynced] => 1
)
var facebookSynced我在我的控制器中设置了$ this-> Session-write() - 并且它在会话中按预期进行。但当我从page.ctp做pr($ this-> Session)或pr($ session)时,我得到:
SessionHelper Object
(
[helpers] => Array
(
)
[__active] => 1
[valid] =>
[error] =>
[_userAgent] => b3346028c15f82ac5d4b25c4f50d8718
[path] => /
[lastError] =>
[security] => medium
[time] => 1281016202
[sessionTime] => 1281034202
[watchKeys] => Array
(
)
[id] =>
[host] =>
[timeout] =>
[base] => /Eclipse/Calc_1.3.2/trunk
[webroot] => /Eclipse/Calc_1.3.2/trunk/
[here] => /Eclipse/Calc_1.3.2/trunk/users/login
[params] => Array
(
[controller] => users
[action] => login
[named] => Array
(
)
[pass] => Array
(
)
[plugin] =>
[form] => Array
(
)
[url] => Array
(
[url] => users/login
)
[models] => Array
(
[0] => User
)
)
[action] => login
[data] =>
[theme] =>
[plugin] =>
)
如何使用facebookSynced var访问我的会话,这两个'会话'之间的区别是什么。额外信息:在core.php中我有:
Configure::write('Session.save', 'php');
Configure::write('Session.cookie', 'CAKEPHP');
Configure::write('Session.save', 'custom_sesh');
Configure::write('Session.timeout', '180');
Configure::write('Session.checkAgent', true);
Configure::write('Session.start', true);
custom_sesh的内容只有一行:
ini_set('session.cookie_lifetime', 0);
答案 0 :(得分:3)
print_r($ _ SESSION)的第一个结果是实际会话变量的值列表。
pr($ this-> Session)的第二个结果显示了CakePHP的Session帮助对象的内容。
两者都完全不同。如果您想访问会话变量 facebookSynced 的值,您可能希望执行以下操作:
$foo = $_SESSION["facebookSynced"];
答案 1 :(得分:2)
在您的视图中,您应该使用会话助手。
echo $session->read('Key.value');
您在控制器中写过的内容
$this->Session->write('Key.value','example');
答案 2 :(得分:0)
如果您正在使用
$this->Session->write('facebookSynced',true);
在你的控制器中,
只需使用
$foo = $this->Session->read('facebookSynced');
在视图中。
就这么简单! :)