Я пытаюсь создать страницу входа, я не понимаю, где я ошибаюсь, только второй оператор else, если работает
else
{
$username = $this->input->post('username');
$password = $this->input->post('password');
$user_id = $this->user_model->login_user($username,$password);
if ($user_id)
{
$user_data = array(
'user_id' => $user_id,
'username' => $username,
'logged_in' => true
);
$this->session->set_userdata($user_data);
$this->session->set_flashdata('login_successful','you are now logged in');
redirect('home/index');
}
else
{
$this->session->set_flashdata('login_failure','sorry, not logged in');
redirect('home/index');
}
}
Работает только последний оператор else, и я не могу понять, почему я делаю не так?
посмотрите результат $ user_id, возможно, login_user возвращает неожиданное значение
У вас есть session_start()?
Если ваш login_failure - это то, что вы видите, $user_id - это ложь, поэтому очевидные вещи, на которые следует обратить внимание: а) что такое $user_id? Попробуйте var_dump($user_id);, чтобы проверить; б) Что делает login_user()? Получает ли он правильные значения? Правильно ли тестируется? Отладьте это!






Как только вы уже аутентифицируете входные данные для своей модели, это означает, что все данные будут переданы в переменную $user_id, если пользовательский ввод правильный и нет необходимости вставлять другие данные в вашу переменную $user_data
$username = $this->input->post('username');
$password = $this->input->post('password');
$user_id = $this->user_model->login_user($username,$password);
if (!empty($user_id)) //check if it was not empty
{
$this->session->set_userdata($user_id);
$this->session->set_flashdata('login_successful','you are now logged in');
redirect('home/index');
}else{
//some code here
}
проблема была с phpmyadmin, в основном то, что произошло, было, я нажал ввод, чтобы сохранить данные, phpmyadmin также сохраняет команду ввода, я думаю, как \ n, и поэтому мне пришлось написать \ n в поле пароля
Итак,
if ($user_id)возвращает false? Вы можете получить сообщение об ошибке / предупреждение?