0

我有一个登录工作 flash >> PHP >> MYSQL 并且能够做我需要的一切。

但是,我遇到了一个问题,即一个人可以在同一个帐户下登录并开始胡闹。这会产生更新数据的问题,因为有人可以更改某些内容,而其他人可能会覆盖他们的数据或复制它。

我已经看到一些关于 php 会话的提及,但需要更多信息。

我是否会在登录时设置一个计时器,以便在我的 MYSQL 数据库中我有 User|Pass|TimeStamp。登录后,时间戳调整为 Now()+15 秒,每隔 10 秒定时器会调用一次并再次更新时间戳(+15 秒)。因此,在登录时,如果一个人尝试登录,则登录时间必须> 那么时间戳?

我认为这样如果当前登录的用户离开 Flash 程序,登录计时器将不再被触发?

我应该以不同的方式解决这个问题吗?每 5 分钟设置一次不活动自动注销?如果有人尝试登录,它会向所有活动的浏览器发送一个请求,以查看是否正在使用用户名/密码会话(我使用实例 ID)?

一些我应该研究的代码或方向将不胜感激。

jc

4

1 回答 1

0

我建议您继续执行您的逻辑(每隔一段时间更新数据库),稍作改动 - 不要使用计时器,而是在每次用户交互时更新。


假设您的 IDLE_TIME 是 10 分钟。

  • 每次用户浏览任何部分或进行任何重大更改时,您都会更新日志记录时间戳。
  • 如果用户在那段时间内不进行交互,他将被踢出

几年前我实现了类似的东西,但只使用 PHP。在我所有文件的顶部,我会将上次交互时间戳与当前时间进行比较,如果大于 IDLE_TIME:踢,如果不是,更新。

如果大量用户同时使用您的系统,则使用计时器对您的数据库来说有点不必要和痛苦。

于 2011-10-31T18:57:35.457 回答