Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 Codeigniter-根据检查用户存在时返回的行设置会话。登录_Php_Codeigniter_Session - Fatal编程技术网

Php Codeigniter-根据检查用户存在时返回的行设置会话。登录

Php Codeigniter-根据检查用户存在时返回的行设置会话。登录,php,codeigniter,session,Php,Codeigniter,Session,我正在制作一个项目中的积垢区,它需要通过登录屏幕进行保护 登录检查工作正常,但我在设置会话变量时遇到问题 到目前为止,我可以设置会话变量,但只能设置为固定值,如何将会话值设置为从数据库检索的值。我尝试过各种方法,但在互联网上找不到解决方案 我认为问题在于,当$query变量返回true时,我丢失了模型中变量的数据,但是我不知道如何将其与行数据一起传递回去 尝试 $query->nombre, $query['nombre'], $this->$query['nombre'] 是,此时没有表单验证

我正在制作一个项目中的积垢区,它需要通过登录屏幕进行保护

登录检查工作正常,但我在设置会话变量时遇到问题

到目前为止,我可以设置会话变量,但只能设置为固定值,如何将会话值设置为从数据库检索的值。我尝试过各种方法,但在互联网上找不到解决方案

我认为问题在于,当
$query
变量返回true时,我丢失了模型中变量的数据,但是我不知道如何将其与行数据一起传递回去

尝试
$query->nombre
$query['nombre']
$this->$query['nombre']

是,此时没有表单验证

控制器(我认为问题在这里)

模型

function check_login()
{
    $this->db->where('login', $this->input->post('login'));
    $this->db->where('clave', $this->input->post('clave'));
    $query = $this->db->get('admins');

    if($query -> num_rows() ==1)
    {
        return true;
    }
    else
    {
        return false;

    }
}
如果未设置会话,则将构造函数重定向到登录

$is_logged_in = $this->session->userdata('is_logged_in');
    if(!isset($is_logged_in) || $is_logged_in != true)
    {
      redirect('horseadmin_login');
    } 

谢谢

您的检查登录功能返回false和true,而不是$query,请尝试此操作

  function check_login()
 {
   $this->db->where('login', $this->input->post('login'));
   $this->db->where('clave', $this->input->post('clave'));
   $query = $this->db->get('admins');

  if($query -> num_rows() > 0)
  {
       return $query->row_array()
  }

    return false;

 }

当你每次点击你的控制器时,构造器都会运行,你要做的是“安装”任何类型的身份验证库,使用它,并且有一种方法可以检查用户是否登录。这是最简单的方法。
  function check_login()
 {
   $this->db->where('login', $this->input->post('login'));
   $this->db->where('clave', $this->input->post('clave'));
   $query = $this->db->get('admins');

  if($query -> num_rows() > 0)
  {
       return $query->row_array()
  }

    return false;

 }