2013-03-26 5 views
0

Пробуждение авторизации в моем первом приложении CodeIgniter 2. Изучение сессий, и я не могу понять, в какое время я должен инициализировать сеанс для посетителя? В конкретном действии или, может быть, в конструкторе? Как мы знаем, пользователь может вызвать любое действие, набрав URL-адрес сам. Означает ли это, что у меня должно быть что-то вроде метода before(), который должен быть вызван перед всеми действиями и в котором я проверяю, доступен ли сеанс, а если нет, запустите сеанс?Правильный способ запуска сеансов

С этих сайтов я могу читать о сессий в общем, но я хотел бы несколько примеров на рамках CodeIgniter. Возможно, авторизация в CodeIgniter очень специфична, чем эти.

ответ

1

В классе Session хранится информация о сеансе для каждого пользователя в виде сериализованных (и необязательно зашифрованных) данных в файле cookie. Он также может хранить данные сеанса в таблице базы данных для дополнительной безопасности, так как это позволяет идентификатору сеанса в cookie пользователя сопоставляться с сохраненным идентификатором сеанса. По умолчанию сохраняется только файл cookie. Если вы решите использовать параметр базы данных, вам необходимо создать таблицу сеанса, как указано ниже.

Примечание: Класс Session не использует собственные PHP-сессии. Он генерирует свои собственные данные сеанса, предлагая большую гибкость для разработчиков.

Примечание: Даже если вы не используете зашифрованные сеансы, вы должны установить ключ шифрования в свой файл конфигурации, который используется для предотвращения манипулирования данными сеанса.

Сеансы обычно выполняются глобально с каждой загрузкой страницы, поэтому класс сеанса должен быть либо инициализирован в конструкторах контроллера, либо он может быть автоматически загружен системой. По большей части класс сеанса будет запущен без присмотра в фоновом режиме, поэтому просто инициализация класса заставит его читать, создавать и обновлять сеансы.

Чтобы инициализировать класс Session вручную в конструкторе контроллера, используйте $ this-> load-> библиотека функций:

$this->load->library('session'); 

Более Informacion для CI Sesseion вы можете прочитать в UserGuide

Спасибо много

Смежные вопросы