다음 이전 차례

4. 설치 테스트 하기

지금부터 쿠키를 이용한 PHP + PostgreSQL용 간단한 카운터를 만들어보며 설치가 제대로 되었는지 확인해 보자. 사용자 계정은 suni00으로 가정하겠다.

4.1 일반 사용자에게 DB 권한주기

postgres 계정으로 일반 사용자에게 DB 권한을 주어야지 DB를 생성할 수 있다.

        $ su - postgres                   (사용자를 postgres로 바꾼다)
        $ createuser suni00               (권한을 주고픈 계정을 적는다) 
DB 생성 권한은 꼭 주어야 한다.

4.2 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 빠져나감)

4.3 PHP 프로그래밍 하기

다음과 같은 내용의 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 할 때마다 하나씩 카운트가 증가하는걸 알 수 있다.

4.4 쿠키 사용하기

앞에서 만든 카운터는 reload 할때마다 증가하므로 그리 정확하지 않은 단점이 있다. 그래서 다음과 같이 쿠키를 이용하여 약간이나마 신뢰할 수 있게 해보자. 쿠키는 모든 태그보다 위에있어야 하기 때문에 < html > 시작 태그보다 윗줄에 다음과 같이 넣어준다.

        <? if (!$counted) { setcookie("counted",1,time()+3600); } ?>
위 내용을 대충 설명하면 3600초(1시간)동안 $counted 값을 1로 만들어 준다. 그러므로 한번 접속한후 1시간 뒤에 접속해야지만 카운터는 증가한다.

---------------------------------------------------------------------

폐인

http://kernel.pe.kr/~suni00


다음 이전 차례