로직
방문->총방문자수구하기->총방문자수+1 하고 저장 -> 방문자수출력

install.php
<?
include "connect.php"; //mysql접속

$query = "CREATE TABLE counter (
today int UNSIGNED,
total int UNSIGNED,
time int UNSIGNED
);";

$result=mysql_query($query, $connect); //쿼리문입력-테이블생성
mysql_close($connect); //접속해제
if ($result) {echo "설치성공";}
?>


INSERT INTO counter (today, total, time) VALUES (0,0,0);
->각 값을 0으로 초기화 해준다


<?
include "connect.php"; //mysql접속

$query = "SELECT * FROM counter LIMIT 1"; //쿼리문
//카운터테이블에서 1개의 모든 레코드의 모든 컬럼을 가져오라

$data=mysql_fetch_array(mysql_query($query, $connect)); //쿼리문실행-연관배열에 저장

$now = date(Ymd); //오늘날짜
$last = date(Ymd, $data[time]); //마지막방문날짜
if ($now == $last) {$data[today]++;} //오늘방문자수 구하기
else {$data[today]=1;}
$time = time(); //현재의 유닉스타임스탬프

$data[total]++; //총방문자 수 구하기

$query="UPDATE counter SET today=$data[today], total=$data[total], time=$time";
mysql_query ($query, $connect); //새로운 쿼리값 입력
echo "오늘:$data[today] 전체:$data[total]"; //출력

?>





위의 소스는 새로고침하면 계속 카운팅이 하므로 뭔가 제한을 걸어 줄 필요가 있다
쿠키를 이용해 만들어 보자

<?
setcookie("counter_cookie", "^_^", 0, "/"); //쿠키굽기

include "connect.php"; //mysql접속

$query = "SELECT * FROM counter LIMIT 1"; //쿼리문
//카운터테이블에서 1개의 모든 레코드의 모든 컬럼을 가져오라

$data=mysql_fetch_array(mysql_query($query, $connect)); //쿼리문실행-연관배열에 저장

$now = date(Ymd); //오늘날짜
$last = date(Ymd, $data[time]); //마지막방문날짜

if (!$HTTP_COOKIE_VARS[counter_cookie]) { //새로운 방문자일 경우
if ($now == $last) {$data[today]++;} //오늘방문자수 구하기
else {$data[today]=1;}
}
else { //새로운 방문자가 아닐경우
if ($now != $last) {$data[today]=0;}
}

$time = time(); //현재의 유닉스타임스탬프
if (!$HTTP_COOKIE_VARS[counter_cookie]) { //새로운방문자일 경우
$data[total]++; //총방문자 수 구하기
}

$query="UPDATE counter SET today=$data[today], total=$data[total], time=$time";
mysql_query ($query, $connect); //새로운 쿼리값 입력
echo "오늘:$data[today] 전체:$data[total]"; //출력

?>

+ Recent posts