PHP, время входа и выхода из системы во временной таблице?

StackOverflow https://stackoverflow.com/questions/1284712

  •  18-09-2019
  •  | 
  •  

Вопрос

Я только что где-то прочитал статью.Они используют session_id для хранения времени входа и выхода из системы для каждого успешно вошедшего пользователя во временной таблице.Это означает, что таблица будет удалена после завершения сеанса.Так зачем же они создают таблицы??

Есть ли какое-либо использование временных таблиц?И почему необходимо использовать session_id??

Каковы другие варианты использования session_id во временной таблице входа и выхода из системы??(Я просто не могу определить подключение и использование идентификатора сеанса, времени входа и выхода из системы во временных таблицах.)

Это было полезно?

Решение

Вместо использования второй таблицы почему бы не использовать таблицу users для хранения этой информации?

Таблица пользователей:

CREATE TABLE `Users` (
    `Id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `Username` VARCHAR(32) NOT NULL,
    `Password` CHAR(32) NOT NULL,
    `Login` TIMESTAMP DEFAULT 0,
    `Logout` TIMESTAMP DEFAULT 0,
    PRIMARY KEY (`Id`),
    UNIQUE KEY (`Username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1

Теперь, когда пользователь входит в систему, сохраните его идентификатор в переменной $_SESSION и обновите метку времени входа в систему:

UPDATE `Users` SET `Login` = NOW() WHERE `Id` = id_stored_in_session;

а затем, когда он выйдет из системы, используйте ту же команду сверху, но на Logout

Другие советы

"ВРЕМЕННАЯ таблица видна только текущему соединению и автоматически удаляется при закрытии соединения". (оригинал)

Так что временные таблицы определенно не годятся.Я буду голосовать за решение Криса.

бьюсь об заклад, они используют временную таблицу для хранения информации о сеансе (используя session_set_save_handler) и это хорошо:информация о сеансе меняется очень быстро и часто, временные таблицы идеально подходят для таких решений

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

Идентификаторы сеанса очень удобны для распознавания того, вошли пользователи в систему или нет.

Просто создайте таблицу входа с именем пользователя, идентификатором сеанса, временем недавнего доступа.

Когда пользователь запрашивает новую страницу, проверьте, совпадают ли идентификатор сеанса и имя пользователя или нет.

Если они совпадали, просто обновите recentaccesstime .

Если время последнего доступа составляет > 60 минут, вы можете установить, что пользователь вышел из системы с нашего сайта, и удалить его объект из таблицы входа.

www.addressinformer.com

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top