我正在使用codeigniter。我有个奇怪的问题。我在用户登录时设置会话,并将其重定向到新页面。我观察到,会话有时设置,有时不设置。我尝试过使用codeigniter会话
以下是配置文件的外观:
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 7200;
有同样的问题和我发现的问题
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
将在会话表中插入2条记录,第一条记录包含数据,第二条记录不包含任何内容,因此无法访问会话数据。当你改变
$config['sess_encrypt_cookie'] = FALSE;
如果为false,它将只插入一条记录到会话表中,其中包含所有的数据,并且所有的数据都正确:)
您的sess_cookie设置在哪里?我在那儿没看见?
$config['sess_cookie_name'] = 'cookiename';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 7200;
确保您选择的任何cookie名称都没有下划线。即:
$config['sess_cookie_name'] = 'mycookie'; // good
$config['sess_cookie_name'] = 'my_cookie'; // bad
当会话数据在数据库中可用时,每次在用户的cookie中找到有效会话时,都会执行数据库查询以匹配该会话。如果会话ID不匹配,则会话将被销毁。会话ID永远不能更新,只能在创建新会话时生成。
为了存储会话,必须首先为此创建一个数据库表。
在数据库中创建它:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
何时,转到配置并更改:
$config['sess_use_database'] = TRUE;
我更喜欢将会话保存在数据库中,因为它更安全,工作没有问题。
我在Chrome上使用数据库的codeigniter会话有一个严重的问题:当我使用Chrome开发者工具刷新页面时,会话被破坏。 这是我的会话配置: 你知道吗?
我正在使用CodeIgniter和RestServer实现构建一个APIhttps://github.com/chriskacerguis/codeigniter-restserver 我想使用会话身份验证模式,所以我在配置/rest.php中设置了这个: 在config/config中。php: 我有一个控制器身份验证,其代码如下: 会话存储在数据库中,并包含来自$user的数据。pr回显数据(
我正在Codeigniter中创建API。在这个API中,我为用户提供了一个登录函数。如果登录成功,我将在CI会话中设置用户数据,并将会话返回给用户。 现在,用户可以使用该会话ID来验证他自己的所有其他请求,如添加/更新/删除。基本上,我希望当用户发送下一个请求时,我可以根据他的会话ID验证他的凭据。 客户请求代码: 上面是一个从客户端到服务器的登录请求示例。在服务器端,服务器验证客户端提供的凭据
我正在将我的CodeIgniter 3应用程序迁移到Docker,我遇到了会话问题。由于CI会话,我无法登录应用程序。 似乎CodeIgniter会在服务器的每个请求中重新创建新会话。当我检查包含的内容时,我可以看到两个字段: 新会话的文件由用户创建,并具有正确的权限。 会话配置: Docker图像:,, 我不知道发生了什么。有人能帮帮我吗?
我在Codeigniter框架中面临一个新问题。她是我最讨厌的人 这是控制器 模型是
我已经在Codeigniter上编写了一个简单的身份验证过程,但存在一个问题。 由于某些原因,当用户浏览站点时,会话会被混淆,并模拟另一个随机用户。 我只是做: 我通过