Моя сессия не работает должным образом

У меня проблема, что следующее if состояние всегда идет в первый if состояние, никогда не в elseif состояние.

Это мой код ниже:

if ($this->session->has_userdata('role') == 1) {
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('adashboard');
} elseif ($this->session->has_userdata('role') == 2) {
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('udashboard');
}

Можете ли вы сказать, почему?

2

Решение

Надеюсь, что это поможет вам :

использование userdata вместо has_userdata : userdata возвращает значение указанного ключа элемента

if ($this->session->userdata('role') == 1)
{
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('adashboard');
}
elseif ($this->session->userdata('role') == 2)
{
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('udashboard');
}

Для большего : https://www.codeigniter.com/user_guide/libraries/sessions.html

0

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

Надеюсь, что это поможет вам

has_userdata () проверяет, задан ли данный индекс сеанса или нет, и возвращает возвращаемое значение.

$this->session->has_userdata('role') ;

этот код проверяет, установлена ​​ли роль или нет. Так что в вашем случае он возвращает true, что эквивалентно 1.

В вашем случае вам нужно использовать userdata() вместо has_userdata(),

$role=$this->session->userdata('role');
if ($role == 1) {
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('adashboard');
} elseif ($role == 2) {
$this->session->set_flashdata('success', 'Welcome ' . $userInfo[0]->name . '!');
redirect('udashboard');
}
0

По вопросам рекламы [email protected]