【问题标题】:Save users activity保存用户活动
【发布时间】:2011-04-03 05:10:13
【问题描述】:

我是一名网络开发人员,我想设计一个商业网站来销售客户的产品。买卖活动很重要,我需要维护用户活动信息以确保网站安全。

我想写一个动态网站。我想控制所有用户活动,然后决定是否将用户活动信息保存在数据库中。有些网站的访问者是注册用户,有些是匿名用户。我想为我的注册用户保存在线信息,例如 IP 地址、用户名、页面名称和日期/时间。

我想知道:

  • 如何保存用户的 IP 地址?
  • 我还需要保存什么?

【问题讨论】:

  • 您还应该考虑,在某些国家/地区保留完整的用户活动日志实际上是非法的。 (至少在德国,这是当前正在进行的辩论的主题)

标签: php javascript sql database


【解决方案1】:

将每个 HTTP 请求的详细信息保存到数据库中将适用于低流量网站,但在流行网站的情况下您会遇到性能问题,因为写入数据库的操作相对较慢。

为什么不改用服务器 HTTP 日志?

所有 HTTP Web 服务器都会创建纯文本日志文件,其中记录远程用户 IP 地址、请求的 URL 等。您可以通过编写自己的脚本或使用日志文件报告工具来创建活动报告。 AWStats (http://awstats.sourceforge.net/) 是最流行的开源工具之一。

在客户端,您可以使用 Google Analytics 来跟踪用户活动。它还提供了跟踪自定义事件的方法:

_gaq.push(['_trackEvent', 'login', 'user_login', "custom data"]);

更多信息请访问:http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html

此选项仅跟踪启用了 JavaScript 的用户,因此不会显示机器人、爬虫或安装了分析阻止插件的用户。


【讨论】:

    【解决方案2】:

    我不确定我是否理解您的所有问题...但至少要解决其中的一个方面,如果用户在代理后面,那么您无法确定他们的真实 IP 是什么。这就是重点。代理是发出请求然后转发它的人。如果不亲自询问代理,您将无法确定。至于您还需要保存什么,这完全取决于您想要做什么,并且您没有很好地解释为什么要保存这些数据。如果您能澄清这一点,也许我们可以在确定您应该保存哪些数据方面提供更多帮助。

    编辑为了澄清您的问题,如果您想发疯,您可以记录一个人所做的一切。他们点击的每个链接,他们查看的每个产品等。我并不一定提倡这样做,因为我觉得这有点令人毛骨悚然,但肯定有网站这样做。至少,我建议记录人们查看的产品以及他们购买的产品。我还会在每个会话的基础上记录这些信息。基本上,人们在同一趟去您的商店时会查看哪些产品,然后最终购买。我不会太担心“真实”IP地址。大多数人不会支持代理,而那些支持的人,无论如何你都无能为力。

    【讨论】:

    • 您的博客中可能已经捕获了您想要的大部分内容,您可以离线处理它们以挖掘您正在寻找的数据......
    • @jsobo,很好。你所描述的,除了用户名之外,已经存在了。
    • 并且用户名可以存储在 cookie 中并轻松添加到日志中(至少在 Apache 的情况下)
    • @YourCommonSense:你永远不能依赖存储在 cookie 中的数据,尤其是如果用户设置了在关闭浏览器时删除 cookie 等...
    【解决方案3】:

    如何保存用户的 IP 地址?

    $_SERVER['REMOTE_ADDR']

    我还需要保存什么?

    这是一个很奇怪的问题。这是您的应用程序,而不是其他人的应用程序。我们如何猜测您需要什么信息?

    但是,我至少可以指出一个问题:页面名称不足以记录“所有用户活动”。查询字符串和 POST 数据通常包含有关该活动的重要详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-25
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多