我遇到了一个让我的生活变得困难的问题。 :( 我正在尝试跟踪网站上的详细用户流程(未安装GA!)。
所以基本上我需要在选择页面ID35时获取信息我需要看到登陆该页面的用户他们的流程是什么?
因此用户#1访问了页面ID35 =>第ID31页=>第ID84页=>剩下 用户#2访问过页面ID35 => page83 => page124 => page1 =>剩下 ...
因此,1位用户可以访问2页,但也可以访问50页......我需要按照确切的顺序跟踪它们的打开方式。
我试图创建MySQL数据库来跟踪我设置的所有内容。
-ID
-ref_page(reff)
-page
但经过一些测试后,它没有产生我需要的结果,因为它搞乱了......分支太多(太多可能的变化)..
是否有人解决了在网站上跟踪用户流量的问题?
谢谢!
答案 0 :(得分:2)
一种方法是使用$_SESSION
var来存储用户流...这将需要更少的存储空间...更少的频繁插入数据库......并且可以大大简化管理。 / p>
将重新设计数据库以适应:
表:用户流
字段: 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 )。
希望这有帮助!