테스트 사이트 - 개발 중인 베타 버전입니다

간단한 페이지별 카운터

pagecnt라는 테이블을 다음과 같이 만들고
cnt INT()
page VARCHAR(255)
date DATE()
ip_list TEXT()
page와 date에 인덱스 걸어주시고..

<?
$pagecnt = sql_fetch("select cnt, ip_list from `pagecnt` where date='$g4[time_ymd]' and page='$_SERVER[PHP_SELF]'");
if(!strstr($pagecnt[ip_list], "/".$_SERVER[REMOTE_ADDR]."/")) {
  if($pagecnt) sql_query("update `pagecnt` set cnt=cnt+1, ip_list=CONCAT(ip_list, '$_SERVER[REMOTE_ADDR]/') where date='$g4[time_ymd]' and page='$_SERVER[PHP_SELF]'");
  else sql_query("insert into `pagecnt` set cnt=1, ip_list='/$_SERVER[REMOTE_ADDR]/', date='$g4[time_ymd]', page='$_SERVER[PHP_SELF]'");
}
$yesterday = date("Y-m-d", strtotime("-1 day"));
$pagecnt2 = sql_fetch("select cnt from `pagecnt` where date='$yesterday' and page='$_SERVER[PHP_SELF]'");
$pagecnt3 = sql_fetch("select SUM(cnt) as sum from `pagecnt` where page='$_SERVER[PHP_SELF]'");
echo "오늘 : " . intval($pagecnt[cnt]) . " 어제 : " . intval($pagecnt2[cnt]) . " 총 : " . intval($pagecnt3[sum]);
?>

Query string이 들어간 페이지라면(주소 뒤에 물음표가 붙고 변수값이 있는 경우)
$_SERVER[REMOTE_ADDR] 대신 $_SERVER[REQUEST_URI]를 사용하면 됩니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 7개

첨에 불당님거로 시도하다가 잘안되서 패스~
초보인 저같은 경우는 이소스가 적용해보니 더 간단하더군요..
정말 유용하게 사용하고 있습니다^^ ㅊㅊ~!!
감사합니다.

ㅊㅊ
좋은 팁인거 같은데요..

--------------------------------------
pagecnt라는 테이블을 다음과 같이 만들고
cnt INT()
page VARCHAR(255)
date CHAR(10)
ip_list TEXT()
page와 date에 인덱스 걸어주시고..
---------------------------------------

윗 부분을 이해못하는 초짜라...

phpMyAdmin의 sql에 넣나요??
네이버,다음 검색사이트에 'db테이블만들기', 'db테이블만드는방법' 등으로 검색해보세요.
찡기스님이 질문하신거는 스스로 공부하셔야 할겁니다.
자주는 아니더라도 사용해야할때가 가끔있거든요.
저도 초보인지라 꼭 저를 보는듯하여 댓글달고 갑니다.. 힘내시길..^^
생각해보니 CHAR(10)보다는 DATE()가 나을 것 같네요. 수정했습니다.
테이블별로 카운터를 넣을려면 힘들까요..이거 응용하면 되겠는데..제가 잘 몰라서..^^;
필요할것 같군요. 감솨!!

게시판 목록

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
글쓰기
🐛 버그신고