각 페이지 체류시간
본문
안녕하세요! 제가 각 방문자의 이동경로랑 체류시간을 디비에 쌓으려고합니다~
tbl_login에 있는 컬럼을 포함하여 테이블을 새로 생성하여 세션아이디와 체류시간 컬럼을 추가하였습니다.
그리고 lib/common.lib 파일에 function run( ){ } 이 함수안에서
$s_cart_id = get_session('ss_cart_id');
$ct_time = " SELECT lo_datetime from {$g5['login_table']} where od_id='$s_cart_id' ORDER BY lo_datetime desc LIMIT 1";
$row=sql_fetch($ct_time);
$ct_time_result=$row['lo_datetime'];
$now_time = date('Y-m-d H:i:s');
$time_check = strtotime($now_time) - strtotime($ct_time_result); //대상 날짜 및 시간 필드
$total_time = $time_check;
$days = floor($total_time/86400);
$time = $total_time - ($days*86400);
$hours = floor($time/3600);
$time = $time - ($hours*3600);
$min = floor($time/60);
$sec = $time - ($min*60);
if($days==0&&$hours==0&&$min==0)
echo $sec."초 경과";
elseif($days==0&&$hours==0)
echo $min."분 경과";
elseif($days==0)
echo $hours."시간 경과";
else
echo $days."일 경과";
$time_final=$days."일".$hours."시".$min."분".$sec."초";
$tmp_sql = " insert into tbl_login_2( lo_ip, mb_id, lo_datetime, lo_location, lo_url ,f_time) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}','time_final') ";
sql_query($tmp_sql, FALSE);
대충 이런식으로 몇분 몇초 머물렀는지 디비에 남게 해놨는데 A페이지에서 B페이지로 이동하면
A페이지에 머문시간이 B페이지 체류시간 컬럼값으로 들어가서 수정이 필요한 상태인데
insert된 값에서 체류시간값만 update하는쪽으로 해야만하는건지.. 다른 방법이 있을거같은데....모르겠어요
어떤식으로 접근해서 체류시간을 구해야될지 조언얻고 싶습니다!
답변 2
1. $_SERVER['HTTP_REFERER'] 로 이동전 url 체크
2. 시간 갱신 - 기존 입력된 초기접속 시간정보와 체류했던 url이 있다면 갱신 가능
특정 시간 이상 다음 접속이 없다면 체류시간 초기화
위처럼 구성하면 될듯한데요
$_SERVER['HTTP_REFERER']
이용해보세요.