4

谁能告诉我是否可以运行一个 mysl 查询,如果用户导航离开或退出该页面,该查询将运行?

例如,我有一个名为会话的表,我正在使用“session_start”和“session_end”来尝试跟踪我网站上的用户。因此,为了实现“session_end”时间戳,我想知道是否可以在用户离开网站时更新此列?

还有其他我没有想到的实现这一目标的方法,我非常感谢任何人的建议,

提前致谢

4

2 回答 2

3

如果此站点有登录脚本/注销脚本,您可以

  1. 当用户结束会话(注销)时,您可以运行查询以使用用户会话用户名和时间戳进行更新
  2. 如果用户会话超时(可能他离开网站但没有注销),您可以使用用户名和时间戳运行查询,以获取有关用户会话何时超时以及会话存在多长时间的数据。
  3. 如果用户登录,则使用该会话用户名/输入的用户名将会话数据存储在数据库中。

这些只是一些方法(想到的前两种方法)。查看有关 PHP 的会话以获取更多帮助。同样对于查询内容,请再次查看PHP PDO,我只想重申这是我想到的前两件事,并且根据提供的信息,我提出了以下建议。希望这是某种帮助/“啊 - 哈哈!” 片刻。欣赏先生。

编辑 1

如果您有任何机会尝试在浏览器关闭后运行查询/用户点击指向外部域的链接,那么正如 deceze 评论的那样,您不应该信任浏览器来通知服务器。但是就像我在编辑上方发布的那样,您可以使用上述方法来接近您的要求。

也不要忘记阅读OWAPS 的 PHP 会话安全备忘单.. 这和 PHP 用户手册应该是你最好的朋友 :D

再次希望这对你有用!

快乐编码:)

于 2013-04-17T01:03:51.820 回答
0

1:用户登录和注销 - 存储页面 ID(访问过的页面)和跟踪用户的时间 - 注销(会话结束)

2:每个页面上的 Ajax 脚本 - 每隔几秒或几分钟更新一次页面 ID 和时间戳,如果没有更新意味着用户不可用/left

3:每个页面上的php代码,存储IP地址,页面ID和每次访问的时间戳(如果没有新条目,用户不可用)

于 2013-04-17T01:42:13.270 回答