我的 Codeigniter 会话一经创建就会自动过期

Posted

技术标签:

【中文标题】我的 Codeigniter 会话一经创建就会自动过期【英文标题】:My Codeigniter session expires automatically as soon as it is created 【发布时间】:2019-12-05 06:44:39 【问题描述】:

我的 codeigniter 登录会话有问题,会话一经创建就会自动过期,因此它会重定向回登录页面 不管登录信息是否真实。会话在它形成后立即自动销毁。这是我的配置页面。

//date_default_timezone_set("Europe/Istanbul");  

 $config['sess_driver'] = 'files'; 

 $config['sess_cookie_name'] = 'cisession';  

 $config['sess_expiration'] = 86400;  

//$config['sess_save_path'] = 'ci_sessions';

 $config['sess_save_path'] = APPPATH . 'ci_sessions/'; 

 $config['sess_match_ip'] = FALSE;

 $config['sess_time_to_update'] = 300;

 $config['sess_regenerate_destroy'] = FALSE;

 $config['sess_expire_on_close'] = FALSE;

 $config['sess_encrypt_cookie']  = FALSE;

 $config['sess_use_database']    = FALSE;

 $config['sess_match_useragent'] = FALSE;

 $config['cookie_prefix']   = '';

 $config['cookie_domain']   = str_replace("http://","",str_replace("https://","", $config['base_url']));

$config['cookie_path']      = '/';

$config['cookie_secure']    = FALSE;

//$config['cookie_httponly']    = FALSE;

【问题讨论】:

它怎么会一被创建就被销毁呢?我会认为它不是一开始就被创造出来的。我会检查您的 sess_save_path 是否存在以及它是否具有正确的写入权限等。 你能告诉我们你的控制器代码在哪里创建会话吗? 哪个版本的codeigniter?登录脚本是否使用ajax?你/你如何验证会话变量被设置并随后被销毁? 【参考方案1】:

请在您的配置文件中使用这些配置进行会话。

  $config['sess_driver'] = 'files';
  $config['sess_cookie_name'] = 'ci_session';
  $config['sess_expiration'] = 0;
  $config['sess_save_path'] = sys_get_temp_dir();
  $config['sess_match_ip'] = FALSE;
  $config['sess_time_to_update'] = 600;
  $config['sess_regenerate_destroy'] = FALSE;

【讨论】:

非常感谢...我真的很感激它,因为它工作得很好 @Kash Shafiique .. 请继续支持我的回答。

以上是关于我的 Codeigniter 会话一经创建就会自动过期的主要内容,如果未能解决你的问题,请参考以下文章

使用 CodeIgniter (3.1.0) 创建会话

Codeigniter 会话已过期 - 更新数据库

CodeIgniter 登录会话

在 Codeigniter 3 中扩展会话库

范围 codeigniter 会话到期

Codeigniter 会话因 ajax 调用而出错