2017-03-19 18 views
0

現在のセッションIDを取得して、すべてのページで使用したいと考えています。ヘッダーにセッションデータを渡したいセッションをci_sessionsテーブルに保存できます。しかし、現在のログインユーザー名/ sesson_idをci_sessionsから検索するにはどうすればよいですか。ci_sessionsから現在のユーザーセッションIDを取得する方法。

ここは私のci_sessionsコードです。ここ

CREATE TABLE IF NOT EXISTS `ci_sessions` (
     `id` varchar(128) NOT NULL, 
     `ip_address` varchar(45) NOT NULL, 
     `timestamp` int(10) unsigned DEFAULT 0 NOT NULL, 
     `data` blob NOT NULL, 
     KEY `ci_sessions_timestamp` (`timestamp`) 
); 

は私がここにログインし、サインアップのためのポップdailogを使用していたセッションコード

if($this->form_validation->run()) 
      { 
       $username = $this->input->post('login_username'); 
       $password = $this->input->post('login_password'); 


       // ip address 
       //$ip_address= $this->user_activity->get_client_ip(); 

       //Retrieving session data and other data 
        //$captcha_code=$_SESSION['captcha']; 
        //$user_agent=$_SERVER['HTTP_USER_AGENT']; 

       //call the model for auth 
       $this->load->Model('Auth_model'); 
       if($this->Auth_model->login($username, $password)){ 


        $data = array(
          'client_username' => $username, 
          'is_logged_in' => true 
          );      

        $this->session->set_userdata($data); 
        $this->load->view('include/header', $data); 
        //$this->session->set_flashdata('item', $datav['name']); 

       } 
       else{ 
        echo'something went wrong'; 
       } 

を設定している私のアヤックスです。

<script> 
    $("input#login_btn").on('click',function(event){ 
     event.preventDefault(); 

      var x = document.forms["loginform"]["login_username"].value; 
      var x1 = document.forms["loginform"]["login_password"].value; 
      var y = document.getElementById('login-error'); 
      var z = document.getElementById('password-error'); 

      if (x == "") { y.style.display ='block'; }else{ y.style.display ='none'; } 
      if (x1 == "") { z.style.display ='block'; }else{ z.style.display ='none'; } 

       var d = document.forms["loginform"]["login_username"].value; 
       var d1 = document.forms["loginform"]["login_password"].value;  

     if(d != '' && d1 != ''){ 
       var url = $(this).attr('action'); 
       var method = $(this).attr('method'); 
       var data = $(this).serialize(); 

       $.ajax({ 
        url:url, 
        type:method, 
        data:data 
       }).done(function(data){ 
        if(data !=='') 
        { 

         if(d !== '' && d1 != ''){ 
          //$("#login_fail").show('fast'); 
          //$("#login_fail").effect("shake"); 
          $('#loginform')[0].reset(); 
          //var url = $('#current_loginurl').val();     
          //window.location.href=url; 

          var url = $('#current_loginurl').val();     
          window.location.href=url; 

         }      
        } 
        else 
        { 
         var url = $('#current_loginurl').val();     
         window.location.href=url; 
         throw new Error('go'); 
        } 
       });    

      $("div").each(function(index) { 
      var cl = $(this).attr('class'); 
      if(cl =='') 
       { 
        $(this).hide(); 
       } 
      }); 
      } 
     }); 
</script> 

答えて

0

limit 1.

$this->db->order_by('id', 'DESC'); 
$this->db->limit(1); 
$last_session = $this->db->get('ci_sessions')->row_array(); 

print_r($last_session['data']);//prints current session data 

UPDATE を持つdescendingためにbelow.Getのようなテーブルからcurrent session記録order by IDを探す。しかし、現在のユーザーsession idを取得する最も簡単な方法は、の使用を作るですsessionライブラリと同様。

$this->load->library('session'); 
$id = $this->session->userdata('id');//id is session variable that you set 
echo $id; 
+0

コントローラのビューでどこで使用すればよいですか?コントローラー内の – Mahi

+0

。データベースをロードすることを忘れないでください。 –

+0

'print_r($ last_session)'に何が出力されているのか、エラーメッセージ '** undefined index data **' – Mahi

関連する問題