아래는 제가 쓰고 있는 카운터 소스인대요...
php는 대충 읽을 줄만 알지 수정은 힘들어서요...
아래의 문법은 현재 24시간 내에 방문한 아이피 개수를 체크해서 방문자수를 구하는 것인대요...
동일 아이피라도 세시간 이후에 다시 방문하면 방문자 수에 추가되는 것으로 변경하고 싶습니다.
그래서 아래 진하게 표시된 86400(=24*60*60)을 세시간으로 바꿔 볼까 생각해봤지만 그러면 세시간 단위로 방문자수를 구하는 결과가 되버릴꺼 같아서요...세시간 전은 어제가 되버리지 않을까요?
그래서 방법을 한 번 여쭤 봅니다.
그동안 php사이트를 제법 돌아다녀 봤는데 알기가 쉽지 않더라구요...
비오는 오후 시원하시죠? ^^
【blue】<?
$hostName=""; //host name
$userName=""; //use name
$userPassword=""; //password
$dbName=""; //dbname
$conn=mysql_connect($hostName,$userName,$userPassword);
if (!$conn) {
error ("ACCESS_DENIED_DB_CONNECTION");
exit;
}
$db=mysql_select_db($dbName);
if (!$db) {
error("FAILED_TO_SELECT_DB");
exit;
}
$count_table="counter";
// inspect number of visitor
$sql = " select acn_id from $count_table where substring(acn_datetime, 1, 10) = '".date("Y-m-d")."' and acn_ip = '$REMOTE_ADDR' ";
if(mysql_num_rows(mysql_query($sql)) < 1) {
$sql = " insert into $count_table values ('', now(), '$REMOTE_ADDR', '$HTTP_REFERER' ) ";
mysql_query($sql) or die(mysql_error());
}
// Today
$sql = " select count(acn_id) from $count_table where substring(acn_datetime, 1, 10) = '".date("Y-m-d")."' ";
$result = mysql_query($sql);
if($result) $cm_count_today = number_format(mysql_result($result, 0, 0), 0);
// Yesterday
$sql = " select count(acn_id) from $count_table where substring(acn_datetime, 1, 10) = '".date【b】("Y-m-d", time()-86400)【/b】."' ";
$result = mysql_query($sql);
if($result) $cm_count_yesterday = number_format(mysql_result($result, 0, 0), 0);
// Total
$sql = " select count(acn_id) from $count_table ";
$result = mysql_query($sql);
if($result) $cm_count_total = number_format(mysql_result($result, 0, 0), 0);
// Max
$sql = " select substring(acn_datetime, 1, 10) as sub_acn_datetime , count(acn_id) as cnt_acn_id from $count_table group by sub_acn_datetime order by cnt_acn_id desc limit 0, 1 ";
$result = mysql_query($sql);
if($result) $cm_count_max = number_format(mysql_result($result, 0, 1), 0);
// Min
$sql = " select substring(acn_datetime, 1, 10) as sub_acn_datetime , count(acn_id) as cnt_acn_id from $count_table where substring(acn_datetime, 1, 10) < '".date("Y-m-d")."' group by sub_acn_datetime order by cnt_acn_id limit 0, 1 ";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
if($result) $cm_count_min = number_format($row[1]);
echo "today=$cm_count_today&yesterday=$cm_count_yesterday&total=$cm_count_total&max=$cm_count_max&min=$cm_count_min";
?>【/blue】
php는 대충 읽을 줄만 알지 수정은 힘들어서요...
아래의 문법은 현재 24시간 내에 방문한 아이피 개수를 체크해서 방문자수를 구하는 것인대요...
동일 아이피라도 세시간 이후에 다시 방문하면 방문자 수에 추가되는 것으로 변경하고 싶습니다.
그래서 아래 진하게 표시된 86400(=24*60*60)을 세시간으로 바꿔 볼까 생각해봤지만 그러면 세시간 단위로 방문자수를 구하는 결과가 되버릴꺼 같아서요...세시간 전은 어제가 되버리지 않을까요?
그래서 방법을 한 번 여쭤 봅니다.
그동안 php사이트를 제법 돌아다녀 봤는데 알기가 쉽지 않더라구요...
비오는 오후 시원하시죠? ^^
【blue】<?
$hostName=""; //host name
$userName=""; //use name
$userPassword=""; //password
$dbName=""; //dbname
$conn=mysql_connect($hostName,$userName,$userPassword);
if (!$conn) {
error ("ACCESS_DENIED_DB_CONNECTION");
exit;
}
$db=mysql_select_db($dbName);
if (!$db) {
error("FAILED_TO_SELECT_DB");
exit;
}
$count_table="counter";
// inspect number of visitor
$sql = " select acn_id from $count_table where substring(acn_datetime, 1, 10) = '".date("Y-m-d")."' and acn_ip = '$REMOTE_ADDR' ";
if(mysql_num_rows(mysql_query($sql)) < 1) {
$sql = " insert into $count_table values ('', now(), '$REMOTE_ADDR', '$HTTP_REFERER' ) ";
mysql_query($sql) or die(mysql_error());
}
// Today
$sql = " select count(acn_id) from $count_table where substring(acn_datetime, 1, 10) = '".date("Y-m-d")."' ";
$result = mysql_query($sql);
if($result) $cm_count_today = number_format(mysql_result($result, 0, 0), 0);
// Yesterday
$sql = " select count(acn_id) from $count_table where substring(acn_datetime, 1, 10) = '".date【b】("Y-m-d", time()-86400)【/b】."' ";
$result = mysql_query($sql);
if($result) $cm_count_yesterday = number_format(mysql_result($result, 0, 0), 0);
// Total
$sql = " select count(acn_id) from $count_table ";
$result = mysql_query($sql);
if($result) $cm_count_total = number_format(mysql_result($result, 0, 0), 0);
// Max
$sql = " select substring(acn_datetime, 1, 10) as sub_acn_datetime , count(acn_id) as cnt_acn_id from $count_table group by sub_acn_datetime order by cnt_acn_id desc limit 0, 1 ";
$result = mysql_query($sql);
if($result) $cm_count_max = number_format(mysql_result($result, 0, 1), 0);
// Min
$sql = " select substring(acn_datetime, 1, 10) as sub_acn_datetime , count(acn_id) as cnt_acn_id from $count_table where substring(acn_datetime, 1, 10) < '".date("Y-m-d")."' group by sub_acn_datetime order by cnt_acn_id limit 0, 1 ";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
if($result) $cm_count_min = number_format($row[1]);
echo "today=$cm_count_today&yesterday=$cm_count_yesterday&total=$cm_count_total&max=$cm_count_max&min=$cm_count_min";
?>【/blue】
제가 물어봐야할 처지인데 저한테 이런걸 물으시다니.... ㅡ,.ㅡ;