mdi*_*n18 21 php session codeigniter
最初,我认为由于在Codeigniter中使用Modular Extensions,我在加载库时遇到了问题.
但是我发现即使使用干净的codeigniter安装,我也无法加载诸如Session library甚至迁移库之类的库.
我总是得到类似的错误消息,通常与加载文件有关.
这是我在使用会话库时的错误消息.
注意:如果我不使用库,一切正常.
错误:
$config['sess_driver'] = 'files';
$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;
$config['sess_regenerate_destroy'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
我觉得这是某种形式的权限问题,但无论我使用AMPPS,MAMP(Windows)还是XAMP,我总是遇到这个问题.
有没有人有任何想法
操作系统:Windows 8.1
网络服务器:AMPPS/MAMP(Windows)/ XAMP - 都有问题.
笨:V3.0.0
配置:
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`)
);
Run Code Online (Sandbox Code Playgroud)
编辑:
解决.
现在使用CI3文档非常重要,在使用数据库方法进行会话时,请确保使用更新的SQL来创建表.
$config['sess_driver'] = 'files';
$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;
$config['sess_regenerate_destroy'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
在这里找到.我希望这可以帮助任何有类似问题的人.
此外,对于初始问题,如果您使用的是files驱动程序,请确保将其设置$config['sess_save_path']为类似于'ci_sessions'或希望存储的位置.有关更多信息,请参阅@Tpojka答案.
小智 84
工作代码;
$config['sess_save_path'] = sys_get_temp_dir();
Run Code Online (Sandbox Code Playgroud)
这允许执行脚本.
Tpo*_*jka 14
消息:会话:已配置的保存路径''不是目录,不存在或无法创建.
$config['sess_save_path'] = NULL;
Run Code Online (Sandbox Code Playgroud)
尝试设置这个.
小智 7
此代码在我的MACOS上适用于会话错误:
您需要将此代码添加到config.php文件中
您需要替换NULL为sys_get_temp_dir()
$config['sess_save_path'] = sys_get_temp_dir();
Run Code Online (Sandbox Code Playgroud)
我的错误是:
警告:未捕获的异常:会话:配置的保存路径“”不是目录,不存在或无法创建。在/Library/WebServer/Documents/ci/fuse/system/libraries/Session/drivers/Session_files_driver.php:138堆栈跟踪中:#0 [内部功能]:CI_Session_files_driver-> open('','ci_session')#1 / Library / WebServer / Documents / ci / fuse / system / libraries / Session / Session.php(143):session_start()#2 /Library/WebServer/Documents/ci/fuse/system/core/Loader.php(1281): CI_Session-> __ construct()#3 /Library/WebServer/Documents/ci/fuse/system/core/Loader.php(1174):CI_Loader-> _ ci_init_library('Session','CI_',NULL,'session')# 4 /库/ WebServer /文档/ci/fuse/system/core/Loader.php(1037):CI_Loader-> _ ci_load_stock_library('Session','Session /',NULL,
致命错误:session_start():无法初始化存储模块:第143行的/Library/WebServer/Documents/ci/fuse/system/libraries/Session/Session.php中的用户(路径:)
Step1 : open config.php and create a session folder with 0755 permission.
Step2 : update below code variable
$config['sess_save_path'] = __DIR__.'/session';
Run Code Online (Sandbox Code Playgroud)
我今天也遇到了这个问题.
谢谢Sparky和Trojka,将我的配置设置为使用数据库而不是文件使我的CI应用程序在我的本地服务器和现场服务器上都能正常运行.
方法如下:
$config['sess_driver'] = 'database'; // changed from file
$config['sess_save_path'] = 'ci_sessions'; // table name
Run Code Online (Sandbox Code Playgroud)
在Trojka发布的链接中有用于创建表的MySQL.