2011-04-03 39 views
0

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

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

我想知道:

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

您还应该考虑,在某些国家/地区保存用户活动的完整日志实际上是非法的。 (在德国,至少这是目前正在进行的辩论的当前话题) – nfechner 2011-04-03 06:58:33

回答

0

我不确定我是否理解您的所有问题......但至少要解决其中的一个方面,如果用户位于代理之后,那么您无法确定其真实IP是什么。这就是整个问题。代理是提出请求并转发的请求。如果你自己不询问代理,你无法确定。关于您还需要保存的内容,完全取决于您想要执行的操作,而且您还没有做好解释为什么您正在保存这些数据。如果你可以澄清一下,或许我们可以帮助你更多地确定你应该保存的数据。

编辑为解决您的问题,如果您想疯了,您可以记录一个人所做的一切。他们点击的每一个环节,他们观看的每一个产品等等。我不一定主张,因为我觉得它有点令人毛骨悚然,但肯定有网站会这样做。至少,我建议记录人们看什么产品,然后购买他们购买的产品。我也会按照会话记录这些信息。基本上,人们看着什么产品,然后最终购买与您商店相同的旅程。我不会太担心“真实”的IP地址。大多数人不会支持代理,而那些代理,无论如何你都无能为力。

+1

你想要的东西中的大部分可能已经在你的博客中被捕获,你可以离线处理它们来挖掘你正在寻找的数据。 – 2011-04-03 05:18:54

+0

@jsobo ,优点。你所描述的,除了用户名,已经在那里。 – 2011-04-03 05:23:42

+0

用户名可以存储在一个cookie中,并且可以很容易地添加到日志中(至少在Apache的情况下) – 2011-04-03 06:47:44

0

如何保存用户的IP地址?

$ _ SERVER [ 'REMOTE_ADDR']

更重要的是,我需要拯救?

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

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

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跟踪用户,因此它不会显示安装机器人,爬行或有分析阻塞插件用户。