Проблемы с файлами cookie / MAMP / CodeIgniter

#codeigniter #cookies #localhost #mamp

#codeigniter #файлы cookie #localhost #mamp

Вопрос:

У меня проблема с чтением файлов cookie на локальном хостинге с использованием MAMP и Codeigniter.

Я пытаюсь использовать файл cookie для аутентификации доступа к области администрирования. Я могу установить файл cookie (я вижу его в своем браузере — Chrome), но я не могу прочитать его после этого, чтобы предоставить доступ. Я уже перепробовал множество конфигураций, но ни одна не работает. Мне действительно нужна помощь в этом.

Это важнейшие части моего кода:

Здесь я устанавливаю файл cookie

 $cookie = array(
    'name'   => 'login',
    'value'  => 'true',
    'expire' => '0',
    'secure' => TRUE
);
set_cookie($cookie);
  

Здесь я перенаправляю пользователя на страницу входа, если cookie нет, и на панель управления, если cookie установлен

 function login_redirect() {
    $this->load->helper('cookie');
    if (uri_string() == 'admin/controlpanel') {
        if ($this->input->cookie('login')) {
        } else {
            redirect('admin/');
        }
    }
    if (uri_string() == 'admin') {
        if ($this->input->cookie('login')) {
            redirect('admin/controlpanel');
        }
    }
}
  

OBS: весь этот код находится в admin_model

Какие-нибудь советы?

Спасибо и извините за мой английский. Надеюсь, я ясно выразился.

Ответ №1:

У Codeigniter возникают некоторые проблемы с библиотеками файлов cookie и сеансов при запуске на некоторых конфигурациях локального хостинга. Вы потратите часы, пытаясь выяснить конкретную проблему с вашей установкой. Лучше всего использовать общий PHP cookie / session при размещении на localhost и использовать другую библиотеку при тестировании.

Я понимаю, что это ни в коем случае не лучшее решение, но это лучший совет, который я могу предложить.

Комментарии:

1. Спасибо, Бен. На самом деле я понял, что делал это неправильным способом. Я только что использовал для этого файл cookie ci_session, и теперь он работает нормально (всего одна строка кода: $this-> session-> set_userdata(‘logged_in’, TRUE);). Я почувствовал что-то глупое, когда понял это…