【问题标题】:how to get $_SESSION value in cakephp如何在 cakephp 中获取 $_SESSION 值
【发布时间】:2012-05-30 09:02:43
【问题描述】:

我正在从位于 example.com/corephp/ 的核心 php 应用程序设置用户会话,现在我想将此用户重定向到 example.com (主站点)在 cakephp 中。

如何保留从核心 php 应用程序到 cakephp 应用程序的用户会话?

我尝试从核心 php 应用程序中设置 $_SESSION['user'] = someone$_SESSION['token'] = token 并尝试从 cakephp 中检索该值,但没有成功。

我试图用谷歌搜索,但没有合适的答案。

提前致谢。

---------- 编辑

我已经尝试添加 session_name('CAKEPHP');到核心 php 应用程序。 以及尝试将我的蛋糕应用程序的安全级别从中降低到低。

【问题讨论】:

  • 你试过print_r($this->Session->read()); 吗?
  • 是的,我看到了带有 userAgent、时间和超时值的配置数组
  • 感谢你们的努力,所以理论上说如果在核心 php 应用程序中设置 $_SESSION 并且它们在同一台服务器上,我应该从 $_SESSION 中获取它?跨度>

标签: php session cakephp


【解决方案1】:

没有测试,但试试这个。

在您的 corephp 应用程序中:

$_SESSION['Auth']['User'] = $someone;

我的理由是它会设置 $_SESSION,但也许 CakePHP 出于某种原因无法识别它。所以我们使用 Cake 的 API 设置了正确的方式:

在 CakePHP 中

$this->Session->write('Auth.User', $_SESSION['Auth']['User']);

【讨论】:

  • 我在你的例子中得到 $_SESSION['user'] 为空
  • @happyhardik: $_SESSION['user'] 在 CakePHP 中为空?
  • 是的,我从核心 php 应用程序中将变量设置为 $_SESSION['username'](准确地说),它在我的蛋糕应用程序中未定义
  • 两个系统是否使用相同的会话名称? IE。他们是否使用相同的会话 cookie(相同的会话 ID)?
  • 我尝试做类似这样的事情 session_name('CAKEPHP');在我的核心 php 应用程序中,但没有帮助
【解决方案2】:

始终使用会话包装器。这就是他们的目的

在控制器中: http://book.cakephp.org/2.0/en/controllers/components.html#using-components

在视图中: http://book.cakephp.org/2.0/en/core-libraries/helpers/session.html

其他地方: http://book.cakephp.org/2.0/en/development/sessions.html#reading-writing-session-data

永远不要使用 $_SESSION 访问它,你应该没问题(cake 会为你启动会话并在后台处理很多事情)。

如果您共享会话,请确保您设置相同的会话名称。两者也应该使用相同的会话类型(可能是 php)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2023-03-19
    • 2015-11-13
    • 2013-08-11
    • 2020-12-13
    • 2011-07-15
    相关资源
    最近更新 更多