session不是regestring 3变量

时间:2016-02-16 05:32:48

标签: javascript php codeigniter-2 php-5.3 codeigniter-3

我在codeigniter中创建了一个登录系统。它工作正常,但是当我登录时,它只注册了2个变量,它们是登录名和密码但没有向我显示会话中的第3个变量user_type。我已经尝试了太多,但我无法理解错误。

模型代码

  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
    }
}

变换代码控制器

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;
      }
  }

会话变量代码

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 */

1 个答案:

答案 0 :(得分:0)

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

改变这个:

$this->db->select('user_id, username, password','user_type');

有了这个:

$this->db->select('user_id, username, password,user_type');