记录用户操作和页面查看的最有效方法是什么?

时间:2011-11-02 17:49:26

标签: php javascript mysql logging statistics

我创建了一个网站,用户可以在其中添加条目,关联不同表格中的行等等。我需要跟踪用户为分数表执行的操作。

我还需要跟踪网页浏览量。

我正在试图找出跟踪/记录此内容的最有效方法。

最好是:

  • 创建一个新数据库并在此处添加记录?
  • 在与网站相同的数据库中添加记录?
  • 使用javascript通过URL将参数发送到日志记录服务器?

其他任何方法都很好吗?

我不知道当我启动此网站时,我的网站会有多少用户,但希望我会有一些交通。

4 个答案:

答案 0 :(得分:1)

您可以使用行创建数据库表:

  • 日期和时间
  • IP地址
  • 当前网址
  • 推荐人网址
  • 序列化$ _GET
  • 序列化$ _POST
  • 序列化$ _COOKIE

如果您想跟踪流量,这非常有用。

伪代码:

if(!$bot) { 
   $visit = Array(
     'date' => date("Y-m-d H:i:s"),
     'ip'   => $_SERVER['REMOTE_ADDR'],
     etc ...
   );
   $sql = "INSERT INTO visits (`".join("`,`",array_keys($visit)."`) VALUES ('".join("','",array_values($visit)."')";
   ...
}

使用相同的数据库,因此与mysql服务器的连接较少。

在PHP脚本中执行此操作(在mysql_connect之后是非常好的主意),我相信每次访问一次INSERT对您的计算机来说不是一个大挑战。

答案 1 :(得分:0)

如果你想要可靠的结果,我不会使用Javascript,因为用户可能已禁用或可能会尝试操纵它以某种方式作弊。

理想情况下,我会使用单独的模式,因为它会扩展最佳(您可能在将来希望将该模式拆分到单独的服务器上进行处理),尽管这会使得很难在两个模式之间连接数据。您可以从同一模式中的新表开始(只要您的代码被很好地封装起来,您可以随时在以后的日期中破坏登录)。

答案 2 :(得分:0)

我建议寻找异步的解决方案(以最小化对最终用户的性能影响)并与整体访问者数据解决方案集成(以便可以组合各种指标的报告)。例如,Google Analytics提供Event Tracking,以便您可以在访问者,网页浏览等上添加标准指标,以及您描述的任意用户操作数据。

答案 3 :(得分:0)

您是否考虑过使用HTML5网络存储:http://www.w3schools.com/html5/html5_webstorage.asp

您可以使用javascripts sessionstorage对象(数据存储在键/值对中)将所有页面活动存储为此对象的属性,然后将此信息与注销操作一起POST到后端脚本,后端脚本又维护相应的数据库条目,我相信通过在最后一个请求中发送页面活动信息,您可以通过所有开销避免不必要的http请求。

你应该在每次用户登录时重新初始化对象。