代码之家  ›  专栏  ›  技术社区  ›  Jimit

无法在cakephp中获取会话

  •  0
  • Jimit  · 技术社区  · 15 年前

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

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

    谢谢。请帮帮我。

    3 回复  |  直到 14 年前
        1
  •  2
  •   JoeyP    15 年前

    我假设您使用session组件来编写session变量,然后尝试使用$\u session变量从cake作用域之外的常规“ol php文件”中读取该变量。

    如您所知,这并不能保证正常工作。处理这种情况的最佳方法是使用控制器、操作和视图将chat.php文件集成到cake中。

    如果出于某种奇怪的原因不可能这样做,您将需要导入负责设置cake的所有文件,并实例化会话组件,然后使用该组件从会话中读取。我强烈建议沿着第一条路走。

        2
  •  3
  •   mattalxndr    14 年前

    是的,这是完全可能的。

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

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

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

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

    我听说这是一个零散的事情,但对我来说,上面的解决方案到目前为止已经在两个项目中发挥了作用。

        3
  •  1
  •   Young    15 年前

    我不认为在cakephp中使用第三方会话是一个好主意,因为cake已经做得很好了。我相信进行某些会话的最佳位置是控制器,而不是视图。请参见 Session in Cakephp's cookbook Ajax helper of Cake 可能会有帮助。