当我想在codeigniter 3中设置会话数据时,它会出现如下错误:
A PHP Error was encountered
Severity: Warning
Message: mkdir(): Invalid path
Filename: drivers/Session_files_driver.php
Line Number: 117
Backtrace:
File: C:\xampp\htdocs\ci-test\application\controllers\login.php
Line: 7
Function: __construct
File: C:\xampp\htdocs\ci-test\index.php
Line: 292
Function: require_once
以下是想要设置会话数据的代码。
$sess_array = array(
'id' => 1,
'username' => 'bikramkc.kc@gmail.com'
);
$this->session->set_userdata($sess_array);
答案 0 :(得分:137)
分享帮助我的解决方案,尝试设置您的配置变量,如:
$config['sess_save_path'] = sys_get_temp_dir();
答案 1 :(得分:12)
更改您的应用 - > config-> config.php并设置
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
&安培;运行SQL查询
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(40) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
PRIMARY KEY (id),
KEY `ci_sessions_timestamp` (`timestamp`)
);
答案 2 :(得分:6)
您遇到错误的原因是您没有$config['sess_save_path']
转到config.php
并设置
$config['sess_save_path'] = NULL;
答案 3 :(得分:6)
在config.php sess_save_path
应为sys_get_temp_dir();
,然后它将解决mkdir(): Invalid path
的错误
答案 4 :(得分:1)
可能是由于PHP和codeIgniter版本所致。 对我来说,PHP 7.1.25和CI 3.0.4无法正常工作。您可以使用session_id()进行检查。会话已刷新。 使用CI 3.1.2可以正常工作。
答案 5 :(得分:0)
在config.php中尝试此操作
$config['sess_save_path'] = NULL
答案 6 :(得分:0)
$config['sess_save_path']
使用绝对路径。答案 7 :(得分:0)
如果$config['sess_save_path']
是sys_get_temp_dir()
,则会话数据将存储在系统文件夹中。
如果您将数据库表作为ci_sessions使用,则在config.php下面:
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
数据将存储在数据库中。在这种情况下,您可以$config['sess_save_path'] = NULL;
答案 8 :(得分:0)
1。打开application / config文件夹中的config.php
2。一直浏览到$config['sess_save_path'] = NULL;
行。
3。将NULL
的值更改为BASEPATH.'sessions'
答案 9 :(得分:-1)
我有一个类似的案例,我在godaddy中有一个多主机,首先我更正了.htacces文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
然后更正文件config.php
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = sys_get_temp_dir();
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;