首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话不对3个变量进行正则化

会话不对3个变量进行正则化
EN

Stack Overflow用户
提问于 2016-02-16 05:32:48
回答 1查看 24关注 0票数 0

我在代码点火器中创建了一个登录系统。它运行良好,但当我登录时,它只注册了2个变量,即登录和密码,但没有向我显示会话中的第三个变量,即user_type。我试得太多了,但我不明白是怎么回事。

模型码

代码语言:javascript
复制
  function login($username, $password) {
    //create query to connect user login database
    $this->db->select('user_id, username, password','user_type');
    $this->db->from('login');
    $this->db->where('username', $username);
    $this->db->where('password', $password);
    $this->db->where('status',1);
    $this->db->limit(1);

    //get query and processing
 echo  $query = $this->db->get();
    if($query->num_rows() == 1) { 
        return $query->result(); //if data is true
    } else {
        return false; //if data is wrong
    }
}

可变码控制器

代码语言:javascript
复制
function index() {
$this->form_validation->set_rules('username', 'username', 'trim|required|xss_clean');
$this->form_validation->set_rules('password', 'password', 'trim|required|xss_clean|callback_check_database');

    if($this->form_validation->run() == FALSE) {
        $this->load->view('v_login');
        } else {
            //Go to private area
            redirect(base_url('c_home'), 'refresh');
        }
 }

 function check_database($password) {
     //Field validation succeeded.  Validate against database
     $username = $this->input->post('username');
     //query the database
     $result = $this->login->login($username, $password); 
     if($result) {
         $sess_array = array();
         foreach($result as $row) {
             //create the session
             $sess_array = array('user_id' => $row->user_id,
                 'username' => $row->username,
                 'user_type'=> $row->user_type
                  );
             //set session with value from database
             $this->session->set_userdata('logged_in', $sess_array);
             }
      return TRUE;
      } else {
          //if form validate false
  $this->form_validation->set_message('check_database', '<p style="color: red;">اسم المستخدم / كلمة المرور غير صحيحة ! </p>');
          return FALSE;
      }
  }

会话变量码

代码语言:javascript
复制
function session_start(){
    /*----------------------------  session start here */

    if($this->session->userdata('logged_in'))
    {
        $session_data = $this->session->userdata('logged_in');
        $data['username'] = $session_data['username'];
        $data['id'] = $session_data['user_id'];
        $data['user_type'] = $session_data['user_type'];





    } else {
        //If no session, redirect to login page
        redirect('c_login', 'refresh');
    }
    /* ---------------------- session start ends */
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-16 05:37:01

因为在select查询中没有选择user_type

改变这一点:

代码语言:javascript
复制
$this->db->select('user_id, username, password','user_type');

在这方面:

代码语言:javascript
复制
$this->db->select('user_id, username, password,user_type');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35424537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档