2017-03-18 93 views
1

我想在會話中設置用戶數據。我可以在會話數據中設置電子郵件,因爲我從登錄表單中獲取它。 但我不知道如何從數據庫中獲取所有細節並設置爲會話。這裏是我的代碼codeigniter會話用戶數據設置

控制器:

public function login_validation() { 

    // get form input 
    $email = $this->input->post("email"); 
    $password = $this->input->post("password"); 

    // form validation 

    $this->load->library('form_validation'); 
    $this->form_validation->set_rules("email", "Email-ID", "trim|required"); 
    $this->form_validation->set_rules("password", "Password", "trim|required"); 

    if ($this->form_validation->run() == FALSE) 
    { 
     // validation fail 
     $this->load->view('admin/login'); 
    } 
    else 
    { 
     // check for user credentials 
     $this->load->model('site_model'); 
     $uresult = $this->site_model->get_user($email, $password); 
     $data["results"]=$this->site_model->getdata_user($email); 
     foreach ($data as $row) { 
      $fname = $row['fname']; 

     } 

     if (count($uresult) > 0) 
     { 

      $data = array(      
       'email' => $email, 
       'fname' => $fname, 
       'lname' => $lname, 
       'pre'=>$pre, 
       'is_logged_in' => 1       
      ); 

      // set session 
      $this->session->sess_expiration = '0';// will not expire 
      $this->session->set_userdata($data); 

      redirect("admin/index"); 
     } 
     else 
     { 
      $this->session->set_flashdata('msg', '<div class="alert alert-danger text-center">Wrong Email-ID or Password!</div>'); 
      $this->load->view('admin/login'); 
     } 
    } 

} 

型號:

function getdata_user($email) 
{ 
    $query= $this->db->get_where("users", array("email"=>$email)); 

    return $query->result(); 

} 

有一些的Fileds在用戶表:FNAME,LNAME,我要設置爲會話。

謝謝你提前。

回答

0

查看查詢構建器類。 https://www.codeigniter.com/userguide3/database/query_builder.html

使用此資源,您應該能夠構造一些讀取數據庫中的列的代碼。

有關如何使用where子句選擇列的示例。

$this->db->select('fname, lname'); 
$this->db->from('users'); 
$this->db->where('email', $email); 
$query = $this->db->get(); 
+0

你能請幫我用我的代碼。請:)我是codeigniter的新手。 –

+0

我得到了模型部分。如何將這些數據傳遞給控制器​​,然後將其設置爲會話。請看我的代碼。謝謝 –

+0

您從查詢變量讀取? – Webbanditten

0

1)首先你要給你的數據庫查詢從控制器:

$數據= $這個 - > Modal_name->的GetData();

2)模態部分是在這裏:

$this->db->select('fname, lname'); 
$this->db->from('users'); 
$this->db->where('email', $email) ; 
$query = $this->db->get(); 
return $query->result_array(); 

//通過上面的代碼,你會得到所有你想要的電子郵件ID陣列格式和數組中的條目將被返回到控制器和存儲在$ data變量中。

3)將這個變量設置爲會話值:

$this->session->set_userdata('all_data', $data); 

//在這裏,你已經存儲在會話中的所有返回的值。

4)您可以訪問值的方式: //所有值:

$this->session->userdata('all_data'); 

//值對於一些特定的列:

$this->session->userdata['all_data']['column_name']; 

//如果你想在會話中添加一些特定列:

$this->session->set_userdata('all_data',$data['column_name']); 

最重要的是NG:不要忘了加載會話庫,否則將無法正常工作

0

試試這個

集模型功能

 public function getdata_user($email) 
{ 
    $this->db->select('*'); 
    $this->db->from('users'); 
    $this->db->where('email', $email) ; 
    $query = $this->db->get(); 
    return $query->result(); 
} 

在控制器功能

public function login_validation() { 

    // get form input 
    $email = $this->input->post("email"); 
    $password = $this->input->post("password"); 

    // form validation 

    $this->load->library('form_validation'); 
    $this->form_validation->set_rules("email", "Email-ID", "trim|required"); 
    $this->form_validation->set_rules("password", "Password", "trim|required"); 

    if ($this->form_validation->run() == FALSE) 
    { 
     // validation fail 
     $this->load->view('admin/login'); 
    } 
    else 
    { 
     // check for user credentials 
     $this->load->model('site_model'); 
     $uresult = $this->site_model->get_user($email, $password); 
     $results=$this->site_model->getdata_user($email); 

      if ($results) { 
    $sess_array = array(); 
    foreach ($results as $row) { 
     $sess_array = array(
      'email' => $row->email, 
      'fname' => $row->fname, 
      'lname' => $row->lname, 
      'pre' => $row->pre, 
      'id' => $row->id, 
      ); 
     $this->session->set_userdata('$sess_array); 
    } 
    return TRUE; 


      redirect("admin/index"); 
     } 
     else 
     { 
      $this->session->set_flashdata('msg', '<div class="alert alert-danger text-center">Wrong Email-ID or Password!</div>'); 
      $this->load->view('admin/login'); 
     } 
    } 

}