首页 > 解决方案 > 在 Laravel 中,当页面被支持时,我得到旧的会话变量

问题描述

每个人。我正在开发一个 laravel 项目,但会话变量有问题。在 a.php 中,我有一个会话变量“myid”设置为 1。在此页面中,我将会话变量设置为 2。然后转到另一个使用会话变量“myid”的页面 (b.php)。在页面中,“myid”工作正常。它是 2。然后我通过单击浏览器的后退箭头支持 a.php 并获取“myid”。但它是 1。它获取旧会话值。似乎获得了缓存值。我想获得更新的值 2。出了什么问题。寻求您的帮助。谢谢

在 home.php 中,我将“myid”设置为 1,然后转到 a.php。

// 放置会话

函数 setMyId(id) {

$.ajax({

url: put_session.php

data: {"myid", id}

)}

}

// 获取会话

$(文档).ready(函数(){

...

$.ajax({

url: get_session.php

success: function(data) {

   console.log(data);   // it returns always 1 comes from wherever.

}

});

...

});

session()->put("myid", $request->myid);

session()->get("myid");

// 转到 b.php

函数 goToNext() {

window.location.href = b.php;

}

$(文档).ready(函数(){

...

$.ajax({

url: get_session.php

success: function(data) {

   console.log(data);   // it returns new data. works correctly;

}

});

...

});

标签: laravelsession

解决方案


你好呀,

请在不再使用时使用 laravel 的会话销毁功能!

public function destroy($sessionId) {}

destroy 方法应该从持久存储中删除与 $sessionId 关联的数据。

public function gc($lifetime) {}

gc 方法应该销毁所有早于给定 $lifetime 的会话数据,这是一个 UNIX 时间戳。对于像 Memcached 和 Redis 这样的自过期系统,这个方法可以留空。

更多细节: Laravel 会议文档

谢谢!


推荐阅读