php - 在CodeIgniter 3中重定向后会话丢失

时间:2018-01-28 10:01:14

标签: php codeigniter session

我想在CodeIgniter 3中获得一些帮助。每次登录并重定向到索引页面时,会话都会丢失。

这是我的代码:

控制器:

<sometag>text1</sometag>
<sometag text2>text1</sometag>
<sometag
text2>text1</sometag>

因此,在重定向到索引页面后,我想验证是否涉及会话。我试图回显用户的id和名称,但我得到一个空值。

10 个答案:

答案 0 :(得分:4)

还要检查你的php.ini文件中是否有这个选项:

session.auto_start=1

答案 1 :(得分:3)

在此链接中:

https://php.developreference.com/article/23484402/Codeigniter+session+data+lost+after+redirect

如果您在CI 3.x中工作,并且刚刚将服务器php版本升级到php 7.x 在第281行的system/libraries/Session/session.php处将ini_set('session.name', $params['cookie_name']);替换为ini_set('session.id', $params['cookie_name']);

答案 2 :(得分:1)

您是否已加载会话库

this->load->library('session')

或通过自动加载

$autoload['libraries'] = array('session');

答案 3 :(得分:1)

我刚刚解决了我的问题,原来我有旧版本的codeigniter 3我将我的CI升级到网站上提供的最新版本。谢谢大家的帮助

答案 4 :(得分:0)

您的问题不是来自会话本身。

尝试:

  • 评论重定向方法并添加var_dump($user),以查看您的$user是否已正确设置。问题可能来自您的$user对象,该对象包含idname的空值。

  • if(!$user == null){if ($user != null) {更改if ($user) {

答案 5 :(得分:0)

如果您使用的是PHP 7.1 + / 7.2,则会出现此问题。将PHP版本更改为down(以检查它是否有效)。

答案 6 :(得分:0)

转到

system / libraries / Session / session.php

第281行并替换

ini_set('session.name', $params['cookie_name']); 

作者

ini_set('session.id', $params['cookie_name']);

在将PHP更高版本升级到7.3 +时通常会发生此问题

答案 7 :(得分:0)

我们也遇到同样的问题。我们的规格:InvoicePlane,PHP 7.0,代码点火器v.3.1.11。每个使用redirect()帮助程序的控制器都会从浏览器中获得err_connection_refused。

经过数小时的详尽调试。我们解决了by change IP Address base_url to domain name and set certificate from letsencrypt.

答案 8 :(得分:-1)

试试这个

$this->output->profiler(true);

查看会话是否确实已设置并检查库是否已加载

答案 9 :(得分:-2)

这是另一个答案

function __contruct(){ parent::__contruct(); //more stuff here }

在构造函数中