Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 Codeigniter CI_会话在窗口关闭时过期不工作_Php_Codeigniter_Session - Fatal编程技术网

Php Codeigniter CI_会话在窗口关闭时过期不工作

Php Codeigniter CI_会话在窗口关闭时过期不工作,php,codeigniter,session,Php,Codeigniter,Session,我在这个话题上搜索了很多,但没有找到我需要的工作解决方案。 我正在使用ci_会话将用户数据存储在db、bt上,当我关闭窗口而不注销时,几个小时后我再次登录,然后我的上一个会话也存储在db中,新会话也创建,因此创建重复会话。我也使用这个属性 $config['sess_expire_on_close'] = TRUE; 但它不起作用。我想在浏览器关闭时销毁会话。我正在使用CI的最新版本 您可以为此设置cookie,该设置将在浏览器关闭事件时过期,您可以在您的网站中检查,如果cookie不存在,

我在这个话题上搜索了很多,但没有找到我需要的工作解决方案。 我正在使用ci_会话将用户数据存储在db、bt上,当我关闭窗口而不注销时,几个小时后我再次登录,然后我的上一个会话也存储在db中,新会话也创建,因此创建重复会话。我也使用这个属性

$config['sess_expire_on_close'] = TRUE; 

但它不起作用。我想在浏览器关闭时销毁会话。我正在使用CI的最新版本

您可以为此设置
cookie
,该设置将在浏览器关闭事件时过期,您可以在您的网站中检查,如果
cookie
不存在,则销毁会话

设置
cookie
如下:

setcookie("cookie_name", "cookie_value", '');

如果您不定义cookie销毁时间,则浏览器一关闭,cookie销毁时间就会被销毁,这将对您有所帮助。

我正在使用ci_会话表来存储和使用它,因此我希望从此表中删除而不是使用cookie。因此,您可以检查如果cookie不存在,则可以从以前的会话id中删除数据库中的数据然后销毁该会话并启动一个新会话,这样您就不会有重复的会话。您能否清楚地告诉我怎么做,在配置文件中,我定义了cookie name为$config['sess_cookie_name']='ci_session';然后如何设置cokkie以及在何处设置它以实现我的目标您可以在同一个文件中设置cookie,就在您正在设置会话的位置,而此cookie将不在此名称$config['sess\u cookie\u name']='ci\u session'上。这将是一个不同的命名cookie。您使用的是什么版本我使用的是CI 2.12版,它工作正常。会话在关闭浏览器时过期。我英语不好,对不起,我也是usnig ci 2.12版本bt,它不会在浏览器关闭时过期(