2017-08-25 148 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)。

希望這會有所幫助!