Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
浏览器关闭时PHP会话问题_Php_Google Chrome_Session - Fatal编程技术网

浏览器关闭时PHP会话问题

浏览器关闭时PHP会话问题,php,google-chrome,session,Php,Google Chrome,Session,这里遇到了一个问题,我需要在关闭浏览器时清除用户会话。我已经尝试了各种选项,比如使用onunload函数在浏览器关闭时设置session.cookie\u life=0或session\u destroy。但当我下次打开浏览器时,似乎没有任何东西会破坏会话 我只是在谷歌上搜索了一下,我看到在Chrome浏览器中有一个名为“允许设置本地数据”的设置,它必须更改为“在退出浏览器之前只保留本地数据”,当我这样做时,它不会保留我的会话 真正的问题是我不能要求每个用户更改浏览器的设置,然后它就会相应地工作

这里遇到了一个问题,我需要在关闭浏览器时清除用户会话。我已经尝试了各种选项,比如使用onunload函数在浏览器关闭时设置session.cookie\u life=0或session\u destroy。但当我下次打开浏览器时,似乎没有任何东西会破坏会话

我只是在谷歌上搜索了一下,我看到在Chrome浏览器中有一个名为“允许设置本地数据”的设置,它必须更改为“在退出浏览器之前只保留本地数据”,当我这样做时,它不会保留我的会话


真正的问题是我不能要求每个用户更改浏览器的设置,然后它就会相应地工作,有没有一种方法可以用php或javascript在代码中处理它。任何选项都可以。

加载页面时,您是否尝试检查cookie和会话?大概是这样的:

1) 卸载时销毁cookie 2) 对这两者进行页内加载检查

if(isset($_COOKIE['user'] && $isset($_SESSION['user'] {
    //user is logged in
} else {
    //your code should fall here after user closes browser
    //because the cookie doesn't exist anymore.  Maybe you can even destroy the session too
    [session_destroy();]
    ...
    ...
}

在谷歌修复之前,你可能不得不接受这个问题。所以目前还没有我们可以注入的解决方案?我认为当浏览器关闭时,会话将自动被破坏…无论如何,你能分享你的代码吗?在正常情况下,它会破坏会话,你可以尝试在谷歌浏览器中设置该选项“允许设置本地数据”,将其设置,然后尝试关闭浏览器并再次打开。您的会话不会被破坏。您可以在任何项目中尝试,如果您在本地拥有它,它的行为将相同。是的,该逻辑已经存在。但它仍然是一个浏览器特定的问题,无法工作。请检查此项,可能会有所帮助: