session_destroy在修改session.save_path之后(会话数据保存在服务器上)不起作用]]

问题描述 投票:0回答:2

我在网站的根目录上创建了一个文件夹,其中会话数据存储在public_html之外。我这样做是为了使我网站上的会话持续更长的时间,因为我遇到了一个问题,即30分钟后超时。我尝试了多种方法来修复它,但直到尝试下面的代码,任何方法都没有起作用。我正在使用以下代码创建持续一天的会话,该代码停止了它们在30分钟后超时的问题:

ini_set('session.save_path', '/home/server/.sessionsData');
ini_set('session.gc_maxlifetime', 86400); 
ini_set('session.cookie_lifetime', 86400);
ini_set('session.cache_expire', 86400);
ini_set('session.name', 'website');

session_start(); // Session ready to go!

进行此更改后,会话不再在30分钟后超时,但是我遇到了一个新问题,即销毁会话的“注销代码”不再像以前那样结束会话。以下代码是我用于注销和销毁会话的内容,但它不再像以前那样工作:

session_start();
session_destroy();

header("location: https://website.com");

我应该怎么做才能删除会话并删除存储在'/home/server/.sessionsData'文件夹中的相应会话数据?如果我进入该文件夹并直接删除会话数据文件,它将在用户的浏览器中结束会话。

感谢您对此进行调查。

我在网站的根目录上创建了一个文件夹,其中会话数据存储在public_html之外。我这样做是为了使我的网站上的会话持续更长的时间,因为我遇到了以下问题:...

php session
2个回答
0
投票

如评论中所述Perhaps your ini_set() code, or at least the path changing part, needs to be in your log out script as well.


0
投票

session_unset一起使用session_destroy是实际上清除SESSION数据的有效方法。

© www.soinside.com 2019 - 2024. All rights reserved.