0

我能够在函数中获取登录和打印会话,但是当我单击任何其他函数时,我的会话会丢失,并且它会将我重定向回索引页面,因为每个函数都具有会话集约束。下面写的是代码:

$session = $this->session->userdata('logged_in');
redirect('user/user_dashboard');

当我在那里打印会话时,它会打印出来,并且在删除 die 后它会丢失。

4

2 回答 2

0

您正在为 Safari 测试的浏览器是什么?我发现很多报告说这是 iPad 或 iPhone 上的 Safari 的常见问题,但我过去已经解决了 Internet Explorer 的问题。

当我过去在 Internet Explorer 上遇到此问题时,我通过在 config.php 中设置以下选项来修复它:

$config['sess_match_useragent'] = FALSE;

显然,问题是由于每次用户加载任何页面时都会重新生成 session_id() 造成的。显然,通过不再检查用户代理,CodeIgniter 的本机会话类不再执行特定的检查。

让我知道它是否有效!

于 2013-10-16T13:14:58.860 回答
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`)
);

然后在您的配置文件中添加以下行

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_sessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
于 2018-03-07T07:36:42.320 回答