1
내가 PHP와 함께 연주 해요 그리고 (나는이 타사 플러그인 가능합니다 알지만, 실천으로 내 자신이 구축하려는) 다음을 달성하기 위해 찾고
- 내 (줌라 구동) 사이트 내에서 사용자가 방문하는 모든 쿠키의 기록을 쿠키에 저장하십시오.
- 은 사용자가 로그 아웃 소스 (파일 또는 데이터베이스)에 대한 값의 배열 (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'],
);
나는 데 문제가 'pagehistory'쿠키입니다. 콘솔을 사용하여 테스트를 수행 할 때 첫 번째 URL과 계속해서 무시되는 두 번째 URL 만 얻는 것처럼 보입니다.
예 :
탐색 URL 1 : '/'// (루트)
탐색을 URL 2 : URL 3 '/ 뉴스'
탐색을 '/ 자습서'
쿠키 코드 결과 :
라운드 1 '/'
2 라운드 : '/ |/news'// '|' 구분 기호
라운드 3 인 : '/ |/자습서'// 대신 '/ |/뉴스 |/튜토리얼'은
내가 잘못 뭐하는 거지?
이 솔루션은 효과가 있었지만 기술에 대해서는 혼란 스럽습니다. 나는 'setcookie'가 초기 값을 가진 쿠키를 만드는 데 사용된다는 인상을 받았다. 그러나 사용자가 새 페이지를 조회 할 때 계속 동일한 쿠키를 업데이트하는 것이 목표라면 다시 설정해야합니다. 두 개의 쿠키를 만들지 않겠습니까? 이미 존재하는 쿠키와 동일한 이름의 쿠키를 설정하면 원래의 쿠키를 덮어 씁니까? – brooklynsweb
@brooklynsweb 예, 동일한 도메인 또는 경로 매개 변수를 지정하면 덮어 쓰게됩니다.이 경우 매개 변수는 항상 동일합니다. [이] (http://stackoverflow.com/q/6487564/1940041) – dhavald
Jsut 덮어 다음 데이터베이스에 이전에 저장된 쿠키를 저장하고 살펴보십시오. –