Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter两个项目相同的会话目录_Php_Codeigniter - Fatal编程技术网

Php Codeigniter两个项目相同的会话目录

Php Codeigniter两个项目相同的会话目录,php,codeigniter,Php,Codeigniter,我想为codeigniter“文件”会话驱动程序使用相同的目录(对于2项目)。两个项目位于同一服务器中 项目1保存路径设置 $config['sess_save_path'] = APPPATH.'session_data'; $config['sess_save_path'] = $_SERVER['DOCUMENT_ROOT'].'/project1/application/session_data'; 项目2保存路径设置 $config['sess_save_path'] = APPP

我想为codeigniter“文件”会话驱动程序使用相同的目录(对于2项目)。两个项目位于同一服务器中

项目1保存路径设置

$config['sess_save_path'] = APPPATH.'session_data';
$config['sess_save_path'] = $_SERVER['DOCUMENT_ROOT'].'/project1/application/session_data';
项目2保存路径设置

$config['sess_save_path'] = APPPATH.'session_data';
$config['sess_save_path'] = $_SERVER['DOCUMENT_ROOT'].'/project1/application/session_data';

这在本地工作,但在生产服务器中不工作。怎么了?我的“会话数据”目录权限为“755”。777已测试但不工作

将会话存储在数据库中,并对两个项目使用相同的数据库

Codeiniter 2+:

$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
Codeiniter 3+:

$config['sess_driver'] = 'database';
$config['sess_save_path'] = 'ci_sessions';
Codeigniter 2 MySQL:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) 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`)
);
Codeigniter 3 MySQL:

CREATE TABLE IF NOT EXISTS `ci_sessions` (
    `id` varchar(128) NOT NULL,
    `ip_address` varchar(45) NOT NULL,
    `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
    `data` blob NOT NULL,
    KEY `ci_sessions_timestamp` (`timestamp`)
);

只需确保您的$config['encryption_key']对于两个项目都相同。

在config.php中为两个文件编写相同的值即可

 $['encryption_key'] = 'ci_sesion';
 $config['sess_cookie_name'] = 'ci_session';
 $config['csrf_token_name'] = 'csrf_test_name';
 $config['csrf_cookie_name'] = 'csrf_cookie_name';
我做到了,并获得了我的输出,就像使用同一个会话从一个项目移动到另一个项目一样


假设您需要创建两个具有不同会话的不同项目,然后更改上述给定变量的值。

这会给您带来任何错误吗?当您打印($config['sess\u save\u path'])时,文件夹是否存在?此外,将会话公开会带来很大的安全风险。保存路径显示
[“save_path”]=>string(55)“/home/mydomain/public_html/project1/application/session_data”
oops!我不知道这个问题才一岁。无论如何,有人可能是有益的。