mysql — PHP Отслеживает пользовательский поток

Ну, я столкнулся с проблемой, которая усложняет мою жизнь. 🙁
Я пытаюсь отслеживать подробный поток пользователей на сайте (без установленной GA!).

Поэтому в основном мне нужна информация, когда я выбираю страницу ID35, мне нужно видеть пользователей, которые попали на эту страницу, каков их поток?

Таким образом, пользователь # 1 посетил страницу ID35 => ID страницы => ID страницы => слева
Пользователь # 2 посетил страницу ID35 => page83 => page124 => page1 => оставил

Таким образом, 1 пользователь может посетить 2 страницы, но также может посетить 50 страниц … Мне нужно отслеживать в точном порядке, как они были открыты.

Я пытался создать базу данных MySQL, чтобы отслеживать все, где я настроил, как это.

-Я БЫ

-ref_page (reff)

-страница

Но после некоторого тестирования он не давал нужного мне результата, потому что он портил … просто слишком много ветвлений (слишком много возможных вариаций) ..

Кто-нибудь решил эту проблему отслеживания потока пользователей на сайте?

Спасибо!

0

Решение

Одним из подходов будет использование $_SESSION var для хранения потока пользователей … это потребует меньше памяти в БД … менее частые вставки в БД … и может значительно упростить управление.

База данных будет переработана для размещения:

Таблица: userflow

поле: Идентификатор пользователя
поле: идентификатор сессии
поле: 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).

Надеюсь это поможет!

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]