【问题标题】:Laravel Session Data getting rewrittenLaravel 会话数据被重写
【发布时间】:2019-10-01 16:56:31
【问题描述】:

我遇到了一个奇怪的情况。这是我的代码:

public function getHomepage(Request $request){
    $data['testimonials'] = $this->getTestimonials();
    session()->put('location', 'north_america');
    \debugbar()->info('UPDATED SESSION');
    session()->save();
    return view('site.index')->with('data', $data);
}

public function getGlobalPage(Request $request){
    $data['testimonials'] = $this->getTestimonials();
    if(session()->has('location')){
        session()->forget('location');
    }
    session()->put('location', 'global');
    session()->save();
    return view('site.global')->with('data', $data);
}

public function getFeaturesPage(Request $request){
    //\debugbar()->info($request);
    //echo session()->get('location');
    return view('site.features')->with('data', []);
}

这就是发生的事情。当我转到“主页”页面时,“位置”的会话变量返回为“north_america”。那很好。

如果我从“主页”页面移动到“全局”页面,“位置”的会话变量将返回为“全局”。那也很好。

如果我随后从“全局”页面移动到“功能”页面,“位置”的会话变量将返回为“north_america”。它没有被设置为 null 或其他东西,它似乎被重写了。怎么会这样?

路线如下:

Route::get('/', ['as' => 'site.home', 'uses' => 'Site\SiteController@getHomepage']);
Route::get('features', ['as' => 'site.features', 'uses' => 'Site\SiteController@getFeaturesPage']);
Route::get('global', ['as' => 'site.global', 'uses' => 'Site\SiteController@getGlobalPage']);

【问题讨论】:

  • 告诉我你的路线。
  • 添加在上面。是否有可能在功能页面之前点击主页?

标签: php session laravel-5 session-variables


【解决方案1】:

想通了。当浏览器尝试获取丢失的图像时,它会收到图像的 302 重定向。即使浏览器页面没有移动,这也会改变会话变量。

【讨论】:

    猜你喜欢
    • 2017-01-14
    • 2015-11-26
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2016-11-15
    • 2014-07-02
    • 1970-01-01
    相关资源
    最近更新 更多