首页 > 解决方案 > 如何使用同一服务器访问不同codeigniter项目中的同一会话?

问题描述

如何在同一服务器内的不同 codeigniter 项目中访问相同的会话变量?请帮我 。当我在一个项目中设置会话变量时,不会从另一个项目中获取值。

标签: phpcodeigniter-3

解决方案


虽然,跨不同项目访问会话变量是违反安全性的,但既然你问了,你可以使用数据库访问会话变量。

在你的配置文件中

$config['sess_table_name']              = 'ci_sessions';
$config['sess_driver']              = 'database';
$config['sess_cookie_name']             = 'ci_session';

将驱动程序设置为数据库。

然后创建会话表:

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`)
);

codeigniter 现在将使用该表来存储会话。您可以跨项目访问此表中的数据(会话变量)。

请注意,codeigniter 每 5 分钟重新生成一次会话 id 并更新它。因此,您需要跟踪旧 ID 或父 ID,以备不时之需。此外,您可以生成并保留自己的 ID 以供参考,以避免使用 CI 的会话 ID。

希望这可以帮助


推荐阅读