Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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中创建会话cookie,并在会话表中插入记录_Php_Codeigniter_Session_Session Cookies_Page Refresh - Fatal编程技术网

Php 页面刷新导致在Codeigniter中创建会话cookie,并在会话表中插入记录

Php 页面刷新导致在Codeigniter中创建会话cookie,并在会话表中插入记录,php,codeigniter,session,session-cookies,page-refresh,Php,Codeigniter,Session,Session Cookies,Page Refresh,读了这么多东西,但还没有找到解决我问题的办法。我使用ajax请求对网站上的用户进行身份验证。登录和注销ajax请求工作得非常好。登录调用创建会话cookie并将数据存储在会话表中。注销调用清除cookie并从数据库中删除数据。所有这些都如预期的那样起作用 我正在使用WAMP服务器在本地主机上测试这一点 最令人恼火的是,如果清除了所有cookie,会话表完全为空,那么当我刷新网页时,会从某个地方生成会话cookie。除此之外,我还将一条记录插入到会话表中,其会话id与浏览器cookie中的会话id

读了这么多东西,但还没有找到解决我问题的办法。我使用ajax请求对网站上的用户进行身份验证。登录和注销ajax请求工作得非常好。登录调用创建会话cookie并将数据存储在会话表中。注销调用清除cookie并从数据库中删除数据。所有这些都如预期的那样起作用

我正在使用WAMP服务器在本地主机上测试这一点

最令人恼火的是,如果清除了所有cookie,会话表完全为空,那么当我刷新网页时,会从某个地方生成会话cookie。除此之外,我还将一条记录插入到会话表中,其会话id与浏览器cookie中的会话id相同。数据库记录中没有用户数据,所以我真的很困惑和沮丧,这个cookie是从哪里创建的。我正在自动加载会话库。到目前为止,我不想回到本机会话,所以请建议

会话配置如下所示。sess_update()可以在这里提供帮助吗

$config['sess_cookie_name']     = 'cisession';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

加载会话库后,如果会话不存在,CodeIgniter将创建一个会话。()这是您的问题还是您只是好奇?好吧,我明白了,会话已经建立,并且在用户的浏览器中创建了会话cookie。如果用户使用更新的会话id登录到我的网站,则必须更新此会话cookie。我不明白的是,为什么它会在会话表中创建两个记录(来自同一IP和useragent的两个会话)。我希望会话表对于每个在会话销毁函数中被销毁的用户只有一条记录。如果它有多个记录,那么我无法基于单个会话id对用户进行身份验证。请澄清一下,我迷路了。我鼓励您阅读。它实际上声明它在加载时创建一个会话。此外,它还解释了如何使用该类。您不必基于会话ID对用户进行身份验证,库会为您进行身份验证。只需使用
$this->session->userdata('item')
获取数据并
$this->session->set\u userdata($array)
设置数据。另外,对于每次创建新会话id的原因也有很好的提示。