Как я могу распечатать имя пользователя, который вошел в систему с помощью сеанса

Это моя модель пользователей

public function user_login($email, $password)
{
$this->load->library('session');
$this->db->where('email', $email);
$this->db->where('password', $password);
$query = $this->db->get('users');
if($query->num_rows() > 0) {
foreach($query->result() as $row) {
$data = array(
'id' => $row->id,
'username' => $row->username,
'email' => $row->email
);
$this->session->set_userdata($data);
}
return 1;
} else {
return false;
}
}

На мой взгляд, у меня есть div для отображения имени пользователя сеанса пользователя

<div>
<?php echo $this->session->userdata('username'); ?>
</div>

Это не появляется Что может быть не так?


Когда я печатаю содержимое userdata() как это

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

Я получаю ответ

Array ( [__ci_last_regenerate] => 1502894606 )

0

Решение

упростить ваш запрос

$data = $this->db->where(['email'=>$email, 'password'=>$password])->get('users')->row_array();
if($data){
$_SESSION['id'] = $data['id'];
$_SESSION['username'] = $data['username'];
$_SESSION['email'] = $data['email'];
return TRUE;
}
else{
return FALSE;
}

ввиду:

<div>
<?php echo $_SESSION['username']; ?>
</div>
0

Другие решения

попробуйте напечатать это так echo $data['username'] где $data это любая переменная, которую вы отправляете в представление из контроллера

-1

Если у вас есть имя пользователя в строке с

$row->username

Затем сразу после этого массива добавьте

$this->load->vars( array('username' => $row->username) );

И по вашему мнению вы сможете получить имя пользователя

echo $username;

Предполагается, что вы не перенаправляете после настройки сеанса.

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector