Найти пользователя онлайн или нет с помощью CI_Session - PullRequest
0 голосов
/ 09 июля 2019

Я работаю над модулем чата для моего проекта с ajax.Я хотел бы выяснить, находится ли этот пользователь в сети или нет

Я использую ниже показанную таблицу БД

CREATE TABLE IF NOT EXISTS `ci_sessions` (
    `id` varchar(40) NOT NULL,
    `ip_address` varchar(45) NOT NULL,
    `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
    `data` blob NOT NULL,
    PRIMARY KEY (id),
    KEY `ci_sessions_timestamp` (`timestamp`)
);

И эти данные конфигурации в config.php

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_sessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;

После этого я не смог найти, как данные вставляются в эту таблицу.Я думаю, что он будет вставлен непосредственно в эту таблицу базы данных.Но таблица БД была пуста с пол дня.Кто-нибудь может подсказать мне, что мне делать дальше

1 Ответ

0 голосов
/ 09 июля 2019

Прежде всего, чтобы использовать драйвер базы данных для обработки сеанса, эти условия должны быть выполнены;

  • Только ваше соединение с базой данных по умолчанию (или соединение, к которому вы обращаетесь как $ this-> db из вашегоконтроллеры).
  • У вас должен быть включен Query Builder.
  • Нельзя использовать постоянное соединение.
  • Нельзя использовать соединение с параметром cache_onвключен.

И затем необходимо создать таблицу для хранения данных сеанса;

CREATE TABLE IF NOT EXISTS `ci_sessions` (
        `id` varchar(128) NOT NULL,
        `ip_address` varchar(45) NOT NULL,
        `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
        `data` blob NOT NULL,
        KEY `ci_sessions_timestamp` (`timestamp`)
);

Вам не нужно добавлять первичный ключ в эту таблицу, потому что для вашей опции 'sess_match_ip' установлено значение FALSE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...