Я играю с PHP и хочу добиться следующего (я знаю, что это возможно с помощью сторонних плагинов, но я хочу создать это самостоятельно на практике):
- Хранить историю всех URL-адресов, которые пользователь посещает на моем (управляемом Joomla) сайте в файле cookie.
- Отправка массива значений (другой информации о пользователе, включая историю URL-адресов) в источник (файл или базу данных), когда пользователь выходит из системы. Я еще не занимался вторым пунктом, но буду признателен за ответ или хороший указатель.
Код PHP, который я создал до сих пор:
$user = JFactory::getUser();
$helper = JUserHelper::getUserGroups($user->id);
if(!isset($_COOKIE['pagehistory'])){
setcookie('pagehistory',$_SERVER['REQUEST_URI'].'|');
}
else {
$_COOKIE['pagehistory'] .= $_SERVER['REQUEST_URI'].'|';
}
// debug: destroy cookie
//setcookie ("pagehistory", "", time() - 3600);
$group = "";
foreach ($helper as $value) {
$group .= $value."|";
}
$userinfo = array(
'id' => $user->id,
'username' => $user->username,
'realname' => $user->name,
'group' => $group,
'url' => $_SERVER['REQUEST_URI'],
'history' => $_COOKIE['pagehistory'],
);
Проблема, с которой я сталкиваюсь, связана с файлом cookie «История страниц». Когда я выполняю тест с помощью консоли, я, кажется, получаю только первый URL-адрес и постоянно переопределяющий второй, но не более того.
Пример:
Переход к URL 1: '/' //(root)
Переход к URL 2: '/news'
Переход к URL 3: '/tutorials'
Результаты кода cookie:
Раунд 1: '/'
Раунд 2: '/|/новости' // '|' в качестве разделителя
Раунд 3: '/|/tutorials' // вместо '/|/news|/tutorials'
Что я делаю не так?