我在cakephp中有会话问题。我有一个文件chat.php在webroot文件夹中但是当我用ajax运行该文件时,我找不到从chat.ctp文件创建的会话。 所以任何人都知道如何在cakePHP中的第三方文件中获取会话。
我可以写会话任何.ctp文件吗?
谢谢。请帮助我。
答案 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。可能他们会帮忙。