【发布时间】:2015-05-18 16:50:28
【问题描述】:
尝试在 Codeigniter 中加载 Session 库。这似乎显然是正确的,但实际上是行不通的。 这是配置文件的一部分:
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
同样,ncryption 密钥变量已经设置。此外,CI 3 文档无法为我提供解决此问题的方法。
我已经尝试过:
- 将“sess_save_path”变量设置为“ci_sessions”
- 检查文件夹权限
- 检查表 'ci_sessions' 是否存在
- 使用自动加载器类
- 使用大写 S 的类名
有点奇怪,但是config说:
/*
| -------------------------------------------------------------------
| Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in the system/www folder
| or in your application/www folder.
|
| Prototype:
|
| $autoload['www'] = array('database', 'email', 'session');
|
| You can also supply an alternative library name to be assigned
| in the controller:
|
| $autoload['www'] = array('user_agent' => 'ua');
*/
这是自动加载器的代码:
// Load www
if (isset($autoload['www']) && count($autoload['www']) > 0)
{
// Load the database driver.
if (in_array('database', $autoload['www']))
{
$this->database();
$autoload['www'] = array_diff($autoload['www'], array('database'));
}
// Load all other www
foreach ($autoload['www'] as $item)
{
$this->library($item);
}
}
【问题讨论】:
-
我重新安装了 CI,但没有任何改变
-
你为什么有
$config['sess_save_path'] = NULL;? ,你试过$config['sess_save_path'] = 'ci_sessions'吗? -
您是否设置了加密密钥?
$config['encryption_key'] = 'anything_here'; -
它在那里做什么?对于 CI3,它应该在:
\system\libraries\Session\Session.php -
这很奇怪,因为你的 cmets 说
$autoload['www'] ...你从哪里下载的?你是从codeigniter.com 做的吗?
标签: php codeigniter session