我刚刚看到一篇文章的地方。他们使用SESSION_ID商店为每一个成功登录的用户在临时表中的登录和退出时间。这意味着,一旦会议摧毁了表将被删除。那么,为什么他们创建表??

是否有任何用途的临时表的?和为什么必须使用的session_id ??

哪些人在登录的session_id的使用和注销临时表?? (I只是不能想出SESSION_ID,登录和注销时间在临时表中的连接和使用。)

有帮助吗?

解决方案

代替使用第二表的为什么不使用用户表来存储该信息?

用户表:

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变量ID和更新登录时间戳:

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

和然后当他从上方但Logout注销使用同一命令

其他提示

“临时表是仅可见于当前连接,并且当连接被关闭时自动删除”。 原始

所以临时表绝对是一个不走。我会投给克里斯的解决方案。

我敢打赌,他们正在使用临时表来存储会话信息(使用session_set_save_handler),这是很好的:会话信息变化非常快,通常,临时表是完美的解决方案等。

也许你混淆临时记忆?存储器表不存储在你的硬盘和数据丢失在重新启动时,这是用于feasable会话信息

会话ID的都非常的Userful识别用户是否已登录还是不行。

只要创建帐号,会话-id,recentaccesstime登录表。

在以往的用户请求新页面检查会议-ID和用户名是否匹配与否。

如果他们匹配只需更新recentaccesstime。

如果该recentaccesstime> 60分钟就可以设置用户注销我们的网站,并从登录表中删除他的实体。

www.addressinformer.com

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top