Класс сеансов CI позволит вам хранить сеансы в базе данных (обратите внимание, что это не отменяет использование файлов cookie, а просто добавляет дополнительный уровень устойчивости для обеспечения безопасности в случае, если вам необходимо подтвердить идентификатор сеанса).Вот инструкция sql для создания таблицы сеанса.
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
Затем необходимо указать CI использовать базу данных для данных сеанса:
// in /application/config.php
$config['sess_use_database'] = TRUE;
// and what the name of the db table is
$config['sess_table_name'] = 'ci_sessions';
Затем при входе в системусвоего пользователя, вы бы добавили детали к его данным сеанса:
$this->session->set_userdata('id', $user_id);
$this->session->set_userdata('username', $username);
$this->session->set_userdata('email', $email);
$this->session->set_userdata('isLogged', TRUE);
И это то, что вы использовали бы, чтобы увидеть, есть ли у кого-то доступ к странице или ресурсу.
if ($this->session->userdata('isLogged') === TRUE)
{
// show page
}
else
{
// show access error
}