Я относительно плохо знаком с CodeIgniter и делаю свой первый проект CI, в котором существуют учетные записи пользователей, и т.д. В прошлом я всегда использовал $ PHP _SESSION переменная с этой целью. Однако CI, кажется, имеет свой собственный механизм сессии, которого он требует, "лучше"
Механизм сессии CI, кажется, хранит все данные в cookie? Лично мне нравится идея всех данных, сохраненных на сервере, к которому получают доступ с ключом cookie как собственный механизм сессии PHPs... Я - немые взгляды, что это лучше? Я должен просто принять механизм CI? Или я должен идти вперед и использовать собственные сессии PHP?
Что делает Вас, парни делают?
Спасибо,
Mala
В моём опыте работы с КИ я столкнулся с некоторыми аномалиями при проведении сеансов, но для большинства повседневных нужд библиотека хороша и с ней легко работать. Как было отмечено, Flashdata - это очень хорошая функция.
Если вы решили остаться с сессиями CI, я настоятельно рекомендую хранить сессии в базе данных и дополнительно шифровать куки:
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'sessions';
Структура базы данных должна быть следующей:
CREATE TABLE IF NOT EXISTS `sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id)
);
Сохраните PHP-сессию для получения важной информации и используйте CI-сессию для получения менее важной информации.
Читайте здесь wyh.http://codeigniter. com/forums/viewthread/130577/
В руководстве сказано больше гибкости , чем лучше ;-)
Я полагаю, что главное преимущество сеансового класса CodeIgnite в том, что он интегрируется с фреймворком и предлагает несколько дополнительных функций, таких как отслеживание IP-адресов и то, что он называет flashdata (данные сеанса стираются, как только они прочитаны). Если вы используете фреймворк в первую очередь, это означает, что эти опции могут быть привлекательными для вас.
Неважно, вы также можете сохранить данные сессии в базе данных: