我有一個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