一种方法是使用$_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)。
希望这会有所帮助!
像你这样的声音应该只存储所有请求(包括用户ID和日期时间),然后从日志中选择user_id =? – JimL
使用Google Analytics进行此操作。 –
您需要**尝试自己编写代码**。在[**做更多的研究**之后](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)。 –