在页面退出/导航离开页面时执行mysql查询


execute mysql query upon page exit/navigate away from page?

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

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

还有其他方法可以达到这个目的,我没有想到,我真的很感谢任何人的建议,

thanks in advance

如果这个网站有登录/注销脚本,你可以

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

这些只是一些方法(我想到的前两种方法)。请查看有关PHP的会话以获得更多帮助。另外,查询的东西,看看PHP PDO再一次,我只是想重申这是我想到的前两件事,并提供的信息,我提出了以下建议。希望这是某种帮助/"啊-哈!"的时刻。祝您愉快,先生。

编辑1

如果有任何机会,你试图有一个查询运行一旦浏览器关闭/用户点击到外部域的链接,那么不作为decze评论你可以不应该相信浏览器通知服务器。但是就像我在上面发布的编辑一样,你可以使用上面提到的方法来接近你所要求的。

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

再次希望这对你有用!

快乐编码:)

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

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

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