#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);). Я почувствовал что-то глупое, когда понял это…