Php 关闭浏览器后清除缓存-symfony2

Php 关闭浏览器后清除缓存-symfony2,php,symfony,Php,Symfony,我正在使用Symfony2,我想在用户关闭浏览器后注销该用户 我已在config.yml中将cookie_生存期更改为0,但仍然无法工作 这个想法是: 如果用户没有使用“记住我”,我想让他登录,以防他关闭浏览器并再次打开 我发现没有真正可靠的方法检查浏览器窗口/选项卡是否已关闭,即使由于某些浏览器处理cookie的方式,您使用的cookie生存期为0 然而,检查窗口/选项卡是否关闭的另一种方法(显然并不总是可靠的)是使用JavaScript的卸载事件 两者的结合应该会给你最好的结果 示例-香草

我正在使用Symfony2,我想在用户关闭浏览器后注销该用户

我已在config.yml中将cookie_生存期更改为0,但仍然无法工作

这个想法是:

  • 如果用户没有使用“记住我”,我想让他登录,以防他关闭浏览器并再次打开

我发现没有真正可靠的方法检查浏览器窗口/选项卡是否已关闭,即使由于某些浏览器处理cookie的方式,您使用的cookie生存期为0

然而,检查窗口/选项卡是否关闭的另一种方法(显然并不总是可靠的)是使用JavaScript的卸载事件

两者的结合应该会给你最好的结果

示例-香草JavaScript:

window.onbeforeunload = function(){
  // send ajax request to invalidate the session
};
。。。或者

window.unload = function(){
  // send ajax request to invalidate the session
};
$(window).unload(function(){
  // send ajax request to invalidate the session
});
示例-jQuery:

$(window).bind('beforeunload', function(){
  // send ajax request to invalidate the session
});
。。。或者

window.unload = function(){
  // send ajax request to invalidate the session
};
$(window).unload(function(){
  // send ajax request to invalidate the session
});


更多信息可以在中找到。

我假设您使用的是Chrome浏览器。Chrome在清除此类cookie时遇到问题(请参阅)


其他浏览器(FF、Safari)工作正常,在浏览器关闭时删除cookie,自己试试。

您的配置看起来不错。更改配置后是否清除了symfony缓存?我认为这不是缓存问题。这是因为php保存会话,所以您必须清除会话,而不是symfony缓存。您在进行更改后是否清除了浏览器cookie?谢谢!我检查了一下,问题出在浏览器上:(见下面的答案。嗯,你不必做两次ajax调用。使用
beforeunload
(首选)或
unload
功能。尽管也应该检查cookie(如果OP使用cookie).Jeah我明白这是不可理解的…我只是想包括所有可用的选项。更新了答案。谢谢你指出。谢谢!我检查了,问题出在浏览器:(见下面的答案。完美!@Dmitry Skryabin.Skryabin。我检查了,Chrome出现了这种行为。这是因为我使用了该选项“谷歌浏览器关闭时继续运行后台应用程序”,在浏览器关闭时继续检查我的电子邮件。在我禁用此选项后,浏览器停止保留我的临时cookie。