2016-03-22 2 views
0

я делаю это один, где я хочу, чтобы передать пользовательские данные на моих сессиях, как вы можете видеть на моих кодахCheckin значения внутри массива внутри массив сессии HMVC CodeIgniter

контроллера

public function loginValidate(){ 

    $this->load->library('form_validation'); 


    $this->form_validation->set_rules('USERNAME','Username','required|trim|callback_validateCreds'); 
    $this->form_validation->set_rules('PASSWORD','Password','required|trim'); 

    if($this->form_validation->run($this) == FALSE){ 

     $this->index(); 

    }else{ 
     $data = array(
      'USERNAME' => $this->input->post('USERNAME'), 
      'is_logged_in' => true, 
--------->>'user_data' => $this->Login_Model->userinfo() 
     ); 

     $this->session->set_userdata($data); 
     $this->dashboard(); 
    } 
} 

модель

public function userinfo(){ 

    $sql = "SELECT 
       tbl_users.ID_NUM, 
       tbl_users.USERNAME, 
       user_group.GROUP_NAME, 
       user_rights.RIGHTS, 
       usertypes.USERTYPE, 
       department.DEPARTMENT 
      FROM tbl_users 
       INNER JOIN user_group 
       ON tbl_users.GROUP_ID = user_group.GROUP_ID 
       INNER JOIN user_rights 
       ON user_group.GROUP_ID = user_rights.GROUP_ID 
       INNER JOIN usertypes 
       ON user_rights.RIGHTS = usertypes.USERCODE 
       INNER JOIN department 
       ON usertypes.DEP_ID = department.DEP_ID 
      WHERE tbl_users.USERNAME = ? 
      AND tbl_users.PASSWORD = ? "; 

    $data = array(
        'USERNAME' => $this->input->post('USERNAME'), 
        'PASSWORD' => $this->input->post('PASSWORD') 
       ); 

    $query = $this->db->query($sql, $data); 
    return $query; 
} 

Что я хотел сделать, это когда я вхожу в систему, чтобы проверить значения внутри моего массива user_data. например

if (userdata array in my sessions array have the value admin){ 

show this} 

я не могу или по крайней мере я не думаю, что я могу сломать этот массив, потому что мой выходной запрос будет, например.

--------------------------------------------- 
username | group_name  | rights  | 
--------------------------------------------- 
abc  | group_1  | admin1  | 
--------------------------------------------- 
abc  | group_1  | admin2  | 
--------------------------------------------- 
abc  | group_1  | admin3  | 
--------------------------------------------- 

Как я могу проверить этот массив внутри массива сеансов, если какое-то определенное значение находится внутри этого массива. например, если массив имеет admin1 я буду делать это и т.д ..

+0

использовать этот код «$ this-> последнего сеанса> userdata ['USERNAME'] 'или if ($ this-> session-> userdata [' USERNAME '] ==' admin ') –

+0

okay. я попробую. –

+0

: Неопределенный индекс: ДЕПАРТАМЕНТ - это то, что я получаю. –

ответ

0

использовать этот код

$sessionarray = $this->session->userdata(); 

$sessionarray['USERNAME'] ; 

или ваше состояние

if($sessionarray['USERNAME']=='admin') 
+0

работает в имени пользователя –

+0

bec У меня есть '$ data = array ( --------- >> 'USERNAME' => $ this-> input-> post ('USERNAME'), 'is_logged_in' = > true, 'user_data' => $ this-> Login_Model-> userinfo() ) ;, но когда я попытался выполнить '$ sessionarray ['DEPARTMENT'];' на котором департамент находится на userdata(), он имел ошибка неопределенного индекса –

+0

у вас сеанс не отдела, так что не получите департамент сначала вы поместите отдел в сессию. –

Смежные вопросы