我有一个symfony网站,旨在用于另一个网站上的iframe。对于所有的浏览器,它都能正常工作,除了Safari之外,因为Safari不会让iframe设置任何cookie。而不是登录,我返回到一个空白的登录页面,没有任何错误。无Cookie登录到Symfony2网站
我一直在尝试的解决方案是将PHPSESSID设置为窗体上的隐藏字段,并使用它来跟踪会话而不是cookie。我遇到的问题是登录后,formlogin似乎设置了一个新的会话密钥并发送重定向。我无法在此重定向上获得正确的会话密钥。
我试着通过将以下内容添加到app.php的末尾来添加会话密钥到重定向的URL的末尾(这是非常不确定的,但我变得非常绝望)。
foreach(headers_list() as $header) {
if (substr($header,0,9) == "location:") {
if (strpos($header, '?')===FALSE && strpos($header, '#')===FALSE) {
header($header."?PHPSESSID=".session_id());
}
}
}
这增加了一个会话密钥,但它似乎是增加老会话密钥,而不是已经被表单登录新创建的一个。因此,当我尝试登录时,我收到消息“您的会话超时,或者您已禁用了Cookie”。
如何获得正确的session_id?有一个更好的方法吗?
你为什么不干脆写一个行动,将通过请求其返回当前会话ID? – 2012-07-30 15:19:42