Добавить идентификатор пользователя в данные сеанса (codeigniter) - PullRequest
0 голосов
/ 23 января 2012

Использование CodeIgniter Я пытаюсь добавить идентификатор пользователя из базы данных к данным сеанса.

Я смотрел на этот вопрос , и он не работал для меня

Код контроллера:

function validate_credentials()
{       
    $this->load->model('users_model');
    $query = $this->users_model->validate();

    // if the users credentials validated...

    if($query) 
    {
        $user_id = $this->users_model->get_userID($this->input->post('email'));

        /* 

        I dont need to worry about insecure code because all incoming data 
        is filtered (set in config.php)

        */

        $data = array(
            'username' => $this->input->post('username'), 
            'is_logged_in' => true,
            'user_id' => $user_id
        );

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

        redirect('site/members');
    }

    else 

    {
        // incorrect username or password
        $this->index(); 
    }
}   

Код модели: (theстолбец называется 'userID' в таблице пользователей базы данных)

function get_userID($email){

    $this->db->where('email',$email);
    $query = $this->db->get('users');       

    foreach ($query->result() as $row)
    {
        $user_id = $row->userID;
    }

    return $user_id;

}

Когда я вызываю массив в представлении, идентификатор пользователя не появляется.

<?php $this->session->userdata('user_id');?>

Ответы [ 3 ]

2 голосов
/ 23 января 2012

Если вы просто хотите просмотреть ID пользователя, попробуйте ..

<?php echo $this->session->userdata('user_id');?>
0 голосов
/ 26 ноября 2013

Попытайтесь повторить ваш запрос, это всегда поможет понять вашу проблему, например попробуйте echo $user_id и $data, иногда из-за небольших ошибок, которые вы не получаете значения в ваших запросах, echo покажет вам результат

0 голосов
/ 23 января 2012

Переменная $ this в представлении не такая, как в контроллере.Если вы хотите обратиться к сеансу таким образом, вы должны получить экземпляр $ CI следующим образом:

$CI = &get_instance();
$CI->session->userdata('user_id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...