私はPHPで遊んでいて、次のことを達成しようとしています(これはサードパーティのプラグインで可能であることは知っていますが、練習として自分で構築したいと思っています):
- ユーザーが (Joomla 駆動の) サイト内でアクセスしたすべての URL の履歴を Cookie に保存します。
- ユーザーがログアウトするときに、値の配列 (URL 履歴を含むその他のユーザー情報) をソース (ファイルまたはデータベース) に送信します。項目 2 にはまだ取り組んでいませんが、回答または適切な指針をいただければ幸いです。
これまでに作成した 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'],
);
私が抱えている問題は、「ページ履歴」クッキーにあります。コンソールを使用してテストを行うと、最初の URL と常に上書きされている 2 番目の URL しか取得できないようです。
例:
URL 1 に移動: '/' //(ルート)
URL 2 に移動: '/news'
URL 3 に移動: '/tutorials'
Cookie コードの結果:
ラウンド 1 : '/'
ラウンド 2 : '/|/news' // '|' ラウンド
3 : '/|/tutorials' // '/|/news|/tutorials' の代わりに
私は何を間違っていますか?