Laravel会话密钥改变了整个时间?

 个信2502857367 发布于 2023-01-20 16:26

我正在为我的会话使用"文件存储".当我运行这个:

Session::set('awesomekey', 'myVal123');

并刷新页面,我可以看到每次在/ storage/session中创建的新文件.我以为它每次都会更新同一个文件.这基本上意味着会话根本不起作用.换句话说,如果它不断重新创建会话文件,这永远不会起作用:

Session::get('awesomekey');

或者至少,它返回一个空白.我错过了什么可能导致每次加载页面时都会创建一个新的会话密钥?

UPDATE

在进一步调查中,似乎在每次页面加载时重新生成cookie.可能导致什么?

我甚至都没有看着登录,所以这些信息对我来说毫无用处 - > http://willworkforbanjos.com/2014/02/laravel-sessions-not-working-in-4-1/

当我简单地将上面的set和get代码放在master.blade.php文件中时,我的问题就出现了.它应该设置它,存储信息,并在下次重新加载时从会话中获取正确的信息.但它不能,因为在重新加载时它将cookie更改为其他一些代码.

任何人都知道为什么会这样吗?

更新2

    添加:'lifetime'=> 120到session.php不起作用.(@Sheikh Heera)

    仅将代码放在控制器中不起作用.(@Phill Sparks)

    我试过chrome和firefox,结果相同(@The Shift Exchange)

只是要明确我正在尝试做什么.我在HomeController.php中添加以下代码:

public function index()
{
    Session::put('awesomekey', 'myVal123');
    return View::make('home.index');
}

然后我把它放在我的master.blade.php中:

print Session::get('awesomekey');

我没有在代码的控制器端包含任何"die"或随机回声,除此之外.当我第一次打开文件时,我可以看到myVal123被打印出来.

然后我在控制器中取出这部分:

Session::put('awesomekey', 'myVal123');

并重新加载页面.它现在什么都不打印.我可以在浏览器中看到cookie已更改.生成一个新的cookie将失去对会话的引用,所以我不知道每次都在理解它为什么这样做,即使它在第一次加载时保存了会话.

还有什么想法吗?

更新3

我也尝试过:

    运行"php artisan dump-autoload"...仍然无效

    我去了这里:http://www.whatismybrowser.com/are-cookies-enabled ...是的,启用了cookies.

我真的在这里没有想法......

更新4

    我去了SessionManager.php,就在这下面:

    $ lifetime = $ this-> app ['config'] ['session.lifetime'];

我打印出了终身价值:

print $lifetime; die();

这个代码从未在页面重新加载时被点击?!但是,在我的控制器中添加:

$d = Config::get('session.lifetime');
print $d;

事实上,打印出我的终身价值.... :(

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有