重定向后代码标识会话数据丢失

2022-08-30 21:23:09

我正在使用代码标志器2.1.0。

我正在尝试使用代码图中的会话库执行注册/登录功能。

使用会话库注册/登录对于localhost来说工作正常,但是当我将其实时放置并尝试时,会话不起作用。

我的控制器登录以这种方式工作。我检查凭据,一旦确定,我设置了我的会话数据并重定向到另一个页面。

$user_data = array(
                   'username'       => $result->user_name,
                   'email'          => $result->user_email,
                   'userid'         => $result->user_id,
                   'role'           => $result->user_role,
                   'login_state'    => TRUE,
                   'lastlogin'      => time(),
               );

$this->session->set_userdata($user_data);           
print_r( $this->session->all_userdata());            
redirect(base_url('dashboard'));

此时,当我打印所有会话数据时,它们会打印出来。但是在仪表板控制器端,当我尝试打印出会话数据时,它们不再存在。

任何想法为什么?提前感谢您的帮助。


答案 1

如果您使用的是 CI 3.x,并且刚刚将服务器 php 版本升级到 php 7.x

转至系统/库/会话/会话.php第 281 行,并替换为ini_set('session.name', $params['cookie_name']);ini_set('session.id', $params['cookie_name']);


答案 2

我不确定问题到底是什么。最近我也遇到了这个问题。

它之前在我运行php7.0的开发中工作。

目前,它只能在运行nginx和php 5.6的生产服务器中工作。我的开发服务器似乎不工作,并继续在会话表中重新生成新行。我的开发服务器在homestead virtualbox开发环境中使用php7.1,通常用于Laravel项目。

我通过采取这一步设法克服了这一点。

1)转到系统/库/会话/会话.php

2) 通过添加 // 来注释 session_start()。我们想要重新定位sessionn_start()。

3)下到第315行,它说安全是王道,并注释掉,直到第351行

enter image description here

4)然后转到您的主索引.php(根索引.php)

5)在顶部添加session_start()一次。

enter image description here

6)好的,再试一次。希望它能起作用。我的猜测是它不适用于php 7.1,需要在此会话.php文件中进行一些更新。

  1. 我的 CI 版本是 3.1.1

enter image description here


推荐