【问题标题】:Reading Session value in beforeFilter() cake php在 beforeFilter() cake php 中读取 Session 值
【发布时间】:2009-07-24 09:40:02
【问题描述】:

我正在使用 app_error 脚本来处理我网站上的损坏链接,并且在 error404() 操作中我编写了一个如下所示的会话值:

$this->controller->Session->write("visitor", $visitorId);

这一切都有效,因为如果我重新加载 app_error,我可以成功读回会话。 一旦我写了这个会话值,我就会重定向到一个控制器:

$this->controller->redirect($redirectURL,301);      

然后我想做的是在 app_controller 的 beforeFilter() 回调中检查这个会话值,但它似乎无法检测到这个值。我试过了

$this->Session->read("visitor");

它不检索任何东西。检查方法我也试过了。

任何人都可以在这里看到任何明显的东西吗?我已将调试设置为 0(生产),因此默认情况下它使用 error404()。

【问题讨论】:

标签: cakephp session


【解决方案1】:

尝试像这样设置会话值:

$this->Session->write("VisitorInfo.visitor","value");

那么你不会有任何问题从 app_controller 读取它使用:

$this->Session->read('VisitorInfo');

【讨论】:

    【解决方案2】:

    嗯。您的整个会话是否被破坏或者您无法读取该索引?我假设您的整个会话都被破坏了。您要重定向到的页面是否在同一个域(和子域,如果适用)上?大多数情况下,当我遇到此类问题时,这与蛋糕积极破坏会话有关,尤其是当您的 Security.level 设置为高/中时。

    如果您的会话确实被破坏,请确保两个域相同。如果已经出现这种情况,请尝试将您的安全级别调低,以确保您没有被 session.referer_check 捕获。

    否则,您绝对应该能够从 beforeFilter() 中的会话中读取数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-07
      • 2014-07-03
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 2016-03-30
      • 1970-01-01
      相关资源
      最近更新 更多