지금부터 쿠키를 이용한 PHP + PostgreSQL용 간단한 카운터를 만들어보며 설치가 제대로 되었는지 확인해 보자. 사용자 계정은 suni00으로 가정하겠다.
postgres 계정으로 일반 사용자에게 DB 권한을 주어야지 DB를 생성할 수 있다.
$ su - postgres (사용자를 postgres로 바꾼다)
$ createuser suni00 (권한을 주고픈 계정을 적는다)
DB 생성 권한은 꼭 주어야 한다.
postgres가 준 권한으로 일반사용자가 다음과 같은 DB및 테이블을 생성한다.
$ su - suni00 (일반계정 사용자로 바꾼다)
$ createdb test (test란 DB를 만든다)
$ psql test (test DB에 연결)
test=> create table counter ( count int ); (table 생성)
test=> insert into counter values ( 0 ); (0을 입력)
test=> \q (DB 빠져나감)
다음과 같은 내용의 count.php 파일을 만든다.
<?
$connect=pg_connect("dbname=test user=suni00");
$result=pg_exec($connect,"select * from counter");
$count_num = pg_result($result,0,"count");
if (!$counted) {
$count_num++;
pg_exec($connect,"update counter set count=$count_num");
}
echo $count_num;
?>
이제 웹에서 이 파일을 읽어보면 reload 할 때마다 하나씩 카운트가
증가하는걸 알 수 있다.
앞에서 만든 카운터는 reload 할때마다 증가하므로 그리 정확하지 않은 단점이 있다. 그래서 다음과 같이 쿠키를 이용하여 약간이나마 신뢰할 수 있게 해보자. 쿠키는 모든 태그보다 위에있어야 하기 때문에 < html > 시작 태그보다 윗줄에 다음과 같이 넣어준다.
<? if (!$counted) { setcookie("counted",1,time()+3600); } ?>
위 내용을 대충 설명하면 3600초(1시간)동안 $counted 값을 1로 만들어
준다. 그러므로 한번 접속한후 1시간 뒤에 접속해야지만 카운터는
증가한다.
---------------------------------------------------------------------