Не могу войти в codeigniter, используя сеансы

Я пытаюсь создать страницу входа, я не понимаю, где я ошибаюсь, только второй оператор 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, и я не могу понять, почему я делаю не так?

Итак, if ($user_id) возвращает false? Вы можете получить сообщение об ошибке / предупреждение?

dustytrash 16.09.2018 16:41

посмотрите результат $ user_id, возможно, login_user возвращает неожиданное значение

Ranjan Adhikari 16.09.2018 16:43

У вас есть session_start()?

Robert Rocha 16.09.2018 21:30

Если ваш login_failure - это то, что вы видите, $user_id - это ложь, поэтому очевидные вещи, на которые следует обратить внимание: а) что такое $user_id? Попробуйте var_dump($user_id);, чтобы проверить; б) Что делает login_user()? Получает ли он правильные значения? Правильно ли тестируется? Отладьте это!

Don't Panic 17.09.2018 05:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
35
1

Ответы 1

Как только вы уже аутентифицируете входные данные для своей модели, это означает, что все данные будут переданы в переменную $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 в поле пароля

Usama Maqu 26.09.2018 11:38

Другие вопросы по теме