我想在CodeIgniter 3中获得一些帮助。每次登录并重定向到索引页面时,会话都会丢失。
这是我的代码:
控制器:
<sometag>text1</sometag>
<sometag text2>text1</sometag>
<sometag
text2>text1</sometag>
因此,在重定向到索引页面后,我想验证是否涉及会话。我试图回显用户的id和名称,但我得到一个空值。
答案 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
对象,该对象包含id
和name
的空值。
按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
}
在构造函数中