我是一名网络开发人员,我想设计一个商业网站来销售客户的产品。销售和购买活动很重要,我需要维护用户活动信息以保证网站的安全。
我想写一个动态网站。我想控制所有用户活动,然后决定是否在数据库中保存用户活动信息。网站的一些访问者是注册用户,有些是匿名访问者。我想保存我的注册用户的在线信息,如IP地址,用户名,页面名称和日期/时间。
我想知道:
答案 0 :(得分: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的用户,因此不会显示已安装分析阻止插件的漫游器,抓取工具或用户。
答案 1 :(得分:0)
我不确定我是否理解你的所有问题......但是要解决它的至少一个方面,如果用户在代理之后,那么你无法确定他们的真实IP是什么。这就是重点。代理是发出请求然后转发它的人。无需自己询问代理,您无法确定。关于你需要保存的其他内容,它完全取决于你想要做什么,而你还没有很好地解释为什么你要保存这些数据。如果您可以澄清一下,或许我们可以帮助您更多地确定您应该保存哪些数据。
编辑为了解决您的问题,如果您想要发疯,可以记录一个人所做的一切。他们点击的每个链接,他们查看的每个产品,等等。我不一定提倡,因为我发现它有点令人毛骨悚然,但肯定有网站可以做到这一点。至少,我建议记录人们看到的产品,然后记录他们购买的产品。我还会在每个会话的基础上记录这些信息。基本上,人们会看到什么产品,然后最终在同一次商店购买。我不会太担心“真正的”IP地址。大多数人都不会落后于代理,而那些人,你无论如何也无能为力。
答案 2 :(得分:0)
如何保存用户的IP地址?
$ _ SERVER [ 'REMOTE_ADDR']
我还需要保存多少?
这是一个非常奇怪的问题。这是你的应用程序,而不是别人的。我们如何猜测您需要哪些信息?
但是,我可以指出至少一个问题:页面名称不足以记录“所有用户活动”。查询字符串和POST数据通常包含有关该活动的重要详细信息。