无法在cakePHP中获取会话

时间:2010-04-13 09:02:23

标签: cakephp

我在cakephp中有会话问题。我有一个文件chat.php在webroot文件夹中但是当我用ajax运行该文件时,我找不到从chat.ctp文件创建的会话。 所以任何人都知道如何在cakePHP中的第三方文件中获取会话。

我可以写会话任何.ctp文件吗?

谢谢。请帮助我。

3 个答案:

答案 0 :(得分:3)

是的,这完全有可能。

在APP / config / core.php中,找到“Session.cookie”配置值:

Configure::write('Session.cookie', 'CAKEPHP');

然后,在您的外部文件中,只需在开始会话时设置相同的会话名称:

session_name('CAKEPHP');
session_start();
print_r($_SESSION);

我听说这是一个参差不齐的事情,但对我而言,上述解决方案目前已在两个项目中有效。

答案 1 :(得分:2)

我假设您正在使用Session组件编写会话变量,然后尝试使用$ _SESSION变量从蛋糕范围之外的常规'ol php文件中读取它。

正如您所知,这不能保证正常工作。处理此问题的最佳方法是使用控制器,操作和视图将chat.php文件集成到蛋糕中。

如果由于某种奇怪的原因无法实现,则需要导入负责设置cake的所有文件并实例化会话组件并使用它来从会话中读取。我强烈建议你选择#1。

答案 2 :(得分:1)

我认为在CakePHP中使用第三方会话并不是一个好主意,因为Cake已经做得非常好。我相信制作一些会话的最佳位置是控制器,而不是视图。参见{{3} }和Session in Cakephp's cookbook。可能他们会帮忙。