2016-06-27 26 views
0

加載我設置會話中的配置/ autoload.php笨自動加載會話沒有在控制器

$autoload['libraries'] = array('database', 'template', 'session'); 

和配置會話的自動加載和配置加密/ config.php中

$config['sess_driver'] = 'files'; 
$config['sess_cookie_name'] = 'dornika'; 
$config['sess_expiration'] = 86400; 
$config['sess_save_path'] = NULL; 
$config['sess_match_ip'] = TRUE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = TRUE; 

,然後我在陣列中設置會話數據與

$this->session->set_userdata($array);  

和在控制器

加載此

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

含有真正 但在我的控制就變得不是1(或真)

這裏空是模型

$is_exist = $this->db->count_all_results(); 

     if($is_exist > 0){ 
     $data_session = array(
      'username' => $_POST['username'], 
      'login' => true 
     ); 
      $this->session->set_userdata($data_session); 
      redirect('dashboard/index'); 
     }else{ 
      redirect('login'); 
     } 

和控制器

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 


class Dashboard extends CI_Controller 
{ 

    public function index() 
    { 
     $login = $this->session->userdata('login'); 
     if ($login == true) { 

      $data['title'] = 'dashboard'; 
      $this->template->load('panel/dashboard', $data); 

     }else{ 
      redirect('login'); 
     } 
    } 
} 

回答

0
代碼

您正試圖訪問$this->session->userdata('login')哪些doe在那裏,你沒有給你的會話任何名稱。您可以通過在設置時向會話提供名稱來解決此問題。

代碼

# Setting Session 
$this->session->set_userdata("login", $array);  

# Accessing Session 
$user_data = $this->session->userdata("login"); 
echo $user_data['some_key']; // or var_dump($user_data); 
+0

謝謝你的答案,但我做到了之前設置與 $ data_session =陣列( '用戶名'=> '用戶名', '登錄'=>真正的用戶數據 ) – nima

+0

我不是在講關於數組的問題,我說'set_userdata()'的第一個參數必須是名稱是會話的名稱。您必須爲會話提供一個名稱以便稍後訪問。 '$ this-> session-> set_userdata(「example」,$ array)' –

+0

感謝讓我檢查它;) – nima