会话在重定向时丢失(Internet Explorer)

时间:2015-04-16 15:58:14

标签: internet-explorer session laravel

我在L5网站上为使用Internet Explorer的用户继续丢失重定向会话数据。

正常重定向时会话数据丢失。我似乎并不孤单(10,000次观看ie9 loses cookies after redirect )。但即使明确闪现数据也会在重定向时丢失,请参阅代码->with()的第二个重定向版本。

我已完成基本的功课,并根据Stackoverflow建议添加了P3P作为标题的一部分。

第一个控制器

public function getVerifyClient(){

    // If user is an existing client
    if(\Auth::check()){
        if (\Auth::user()->role == 'Client'){
//              dd(Session::get('service')); <-- Selected service part of session 
            return redirect('order'); <-- Session data lost
            return redirect('order')->with('service', Session::get('service'); <-- Session data lost even with explicitly flashed data
        }
        \Auth::logout(); // Logout employees etc so they do not book in their account
    }
    ...
}

第二个控制器

public function getOrder(){
    dd(Session::get('service'));
}

session.php文件

我的session.php设置为正常标准('domain' => null, 'path' => '/'等),只有'encrypt'例外设置为true而不是false

1 个答案:

答案 0 :(得分:0)

我抛弃了所有功能,最终以一种简单的方式重新声明会话。

如果启用或禁用Cookie,您不必担心。您只需在if else条件下重新声明脚本的一部分(变量 - 您要显示的数据)。只需使用!isset重新声明相同的内容,然后在if else条件中使用相同的变量重新声明两次,如果您理解我的意思.g

if (!isset etc){A+B}  else {A+B}. 

它会在刷新,提交或跳转菜单等方面反复回调相同的变量。您不必担心丢失会话或数据。并确保开始会话在页面上方并定义会话,例如

session['id'] on that page which you claim session data missing.

无需担心标题或白线,它实际上与它无关。我已经尝试了一百万次了。你不需要打扰使用ajax等。逻辑很简单。 PHP几乎可以做任何事情。