Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未找到PHP会话变量未定义索引:is_user_login_Php - Fatal编程技术网

未找到PHP会话变量未定义索引:is_user_login

未找到PHP会话变量未定义索引:is_user_login,php,Php,未设置会话变量。我的网站直到上个月才开始运行。我们没有做任何代码更改,突然登录不起作用,这是因为没有设置会话变量。正如您在下面的代码中所看到的,在查询db的emailaddress时,用户被重定向到dashboard,但在那里找不到变量is\u user\u login。本月可能发生任何可能导致此问题的配置更改 if ($val->result_id->num_rows == 1) { foreach ($val->result_array

未设置会话变量。我的网站直到上个月才开始运行。我们没有做任何代码更改,突然登录不起作用,这是因为没有设置会话变量。正如您在下面的代码中所看到的,在查询db的emailaddress时,用户被重定向到dashboard,但在那里找不到变量is\u user\u login。本月可能发生任何可能导致此问题的配置更改

       if ($val->result_id->num_rows == 1) {
            foreach ($val->result_array() as $recs => $res) {
                $this->session->set_userdata(array(
                    'id' => $res['id'],
                    'email' => $res['email'],
                    'is_user_login' => true
                    )
                );
                $_SESSION['is_user_login'] = true;
            }
            redirect('dashboard');
          }

当我在下一页打印会话变量时,它是空的

更新:
我不得不将codeigniter从3.0.6升级到最新版本。这解决了问题。

此php配置正常

如果会话没有工作,那么您可能必须启动会话

现在,我将包含一个小代码来了解情况:


//将站点中的某个地方的此代码包含到同一类中
受保护功能检查会话($f$l){
if(session_status()=PHP_session_NONE){
错误日志(“会话已启用,但在文件:$f行:$l中未启动任何会话”);
}else if(session_status()==PHP_session_DISABLED){
错误日志(“文件中当前禁用了会话:$f行:$l”);
}else if(session_status()=PHP_session_ACTIVE){
错误日志(“会话已启用,并且已在文件:$f行:$l)中启动会话”);
}
}
如果($val->result\u id->num\u rows==1){
//然后检查会话的状态
$this->check_session(basename(_文件);_行);
foreach($val->result_array()作为$recs=>$res){
$this->session->set_userdata(数组)(
'id'=>$res['id'],
'email'=>$res['email'],
'是否为用户登录'=>true
)
);
$\u会话['is\u user\u login']=true;
}
重定向(“仪表板”);
}
如果会话已启用但未启动,则需要启动它们


如果未启用会话,则需要启用它们。

会话.save_pathPHP config变量指向的文件夹应具有运行PHP-FPM的Linux用户的写入权限。感谢您的回复。网站以cpanel为主机。你能告诉我在哪里可以设置这个吗。什么php版本,你升级过php吗?PHP7.4(ea-php74)。早些时候它是7.3,自从去年以来就不工作了,我今天将它更新为7.4,看看这是否有什么不同。制作一个文件,调用它
phpinfo.php
,并在其中写入
,然后您可以看到会话的状态。可能在此处发布带有会话变量的相关行check session函数返回]“会话已启用,并且会话已在文件Login.php line:46中启动”。我将放置更多的调试语句来查看发生了什么。变量“is_user_login”在后续页面中不为真。当我尝试在下一页打印会话变量时,它为空。我已经在下一页用代码更新了我的问题。那么你的问题解决了吗?
class Dashboard extends MY_Controller {
public function __construct() {
   parent::__construct();
     $f = basename(__FILE__);
    error_log("Inside file before: $f and is user currently logged in: {$this->session->userdata('is_user_login')}");
   if (!$this->session->userdata('is_user_login')) {
        redirect('login');
    }
}