iOS 6.1.3上的CakePHP会话和Safari

时间:2013-04-23 22:18:48

标签: ios session cakephp safari

我有一个CakePHP应用程序(使用cake 2.3),它使用Session组件在用户第一次访问该站点时向用户显示一个启动页面,而且再也不会。这是控制器中的代码:

public function index() {
  if (!$this->Session->check('splashShown')) {
    $this->Session->write('splashShown', true);
    $this->redirect(array('controller'=>'pages', 'action' => 'about'));
  }
  //other stuff in controller...
}

这适用于IE,Firefox和Chrome的桌面版本。它也适用于Chrome iOS,但不适用于Safari iOS。在Safari中,Session-> check()函数始终返回false。

任何人都知道在Safari iOS上进行会话的目的是什么?

2 个答案:

答案 0 :(得分:0)

检查this answer它处理同样的问题,iOS在这方面有点不同。

同时查看herehere。 @Sam Delaney是对的。

答案 1 :(得分:-1)

我怀疑它与存储在互联网浏览器上的会话cookie有关,因为我相信这是PHP用来跨请求保持会话的默认机制。根据请求,如果PHP无法识别会话ID,则会创建一个新会话ID,并在对客户端的响应中,使用会话ID设置cookie。

修改

为了验证这种情况,我很快就用谷歌搜索了一下,我发现了这个:http://rf.com/how-to/how-to-enable-cookies-on-the-iphone/显然这不能解决问题,但会帮助你找出问题的原因。