2017-08-25 152 views
0

嗯,我遇到了一个让我生活困难的问题。 :( 我想跟踪网站上的详细用户流量(没有GA安装!)PHP跟踪用户流程

所以基本上我需要有信息,当我选择页面ID35我需要看到用户谁登陆该页面什么是他们的流量?

所以用户#1访问的页面ID35 =>页ID31 =>页ID84 =>左 用户#2访问的页面ID35 => page83 => page124 =>第1页=>左 ...

因此,1个用户可以访问2个页面,但也可以访问50个页面...我需要按照确切顺序跟踪他们是如何打开的。

我试图创建MySQL数据库来跟踪我已经安装的所有东西。

-ID

-ref_page(REFF)

页随机

但一些测试后,这是不生产我需要的结果,因为它被搞乱......实在太多分支(太多可能的变化)..

有没有人解决了跟踪用户在网站上的流量问题?

谢谢!

+0

像你这样的声音应该只存储所有请求(包括用户ID和日期时间),然后从日志中选择user_id =? – JimL

+0

使用Google Analytics进行此操作。 –

+0

您需要**尝试自己编写代码**。在[**做更多的研究**之后](https://meta.stackoverflow.com/q/261592/1011527)如果你有问题**发布你已经尝试了**的**明确的解释不工作**并提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。阅读[如何问](http://stackoverflow.com/help/how-to-ask)一个很好的问题。请务必[参观](http://stackoverflow.com/tour)并阅读[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

回答

2

一种方法是使用$_SESSION var来存储用户流......这将需要较少的DB存储空间......较少的频繁插入数据库......并且可以大大简化管理。

该数据库将被重新设计以适应:

表:userflow

字段:USER_ID
字段:SESSION_ID
字段:flowStr = VARCHAR(255)

PHP脚本从一个特定的用户跟踪页面流在特定的会议将是如下(请注意,评论)

文件:page_tracker.php

<?php 
session_start(); 
//Initialize session pageflow array if not already set 
if(!isset($_SESSION['pageflow'])){ 
    $_SESSION['pageflow'] = []; 
} 

//We need to make sure not to store repeated requests for the same page, this is a waste of space and is of no value 
if(!isset($_SESSION['cur_page_id']) || $_SESSION['cur_page_id'] != THIS_PAGE_ID){ 
    //current page is different than the last... let's store it now 
    array_push($_SESSION['pageflow'], THIS_PAGE_ID); 
    $_SESSION['cur_page_id'] = THIS_PAGE_ID; 
} 

现在让我们来测试(注意:需要设置CONST THIS_PAGE_ID才能使其工作):

文档:sandbox.php

<a href="sandbox.php">Page 0</a> 
<a href="sandbox_one.php">Page 1</a> 
<?php 
CONST THIS_PAGE_ID = 0; 

require 'page_tracker.php'; 

$pageflowStr = implode(';', $_SESSION['pageflow']); 
echo $pageflowStr; 
?> 

文件:sanbox_one。PHP

<a href="sandbox.php">Page 0</a> 
<a href="sandbox_one.php">Page 1</a> 
<?php 
CONST THIS_PAGE_ID = 1; 

require 'page_tracker.php'; 

$pageflowStr = implode(';', $_SESSION['pageflow']); 
echo $pageflowStr; 
?> 

以后,当您准备好...你可以的$pageflowStr值存储在数据库中(userflow.flowStr)。

希望这会有所帮助!