0

我有一个 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 上的会话发生了什么吗?

4

2 回答 2

0

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

也看这里这里。@Sam Delaney 是正确的问题。

于 2013-04-24T12:08:10.550 回答
-1

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

编辑

为了验证情况是否如此,我快速搜索了你,我遇到了这个:http ://rf.com/how-to/how-to-enable-cookies-on-the-iphone/显然这不能解决问题,但会帮助您确定问题的原因。

于 2013-04-24T08:51:53.557 回答