웹마스터 팁

쿠키(cookie)의 활용

2000.03.06 22:35

zero

쿠키가 몬지 아시죠? (먹는 거라구 말하믄 미버할겁니다... ㅡ.ㅡ;)

쿠키는 아시다시피 넷스케이프사에서 만든 웹서버와 클라이언트간의 인증법이라고 생각하시면 됩니다.

(쩝... 저는 용어 설명에 댑따 서툽니당... 이해해주시길..)

보통 로그인 같은 방법을 사용할때 쿠키를 사용합니다.

즉, 사용자가 ID랑 암호를 입력하면 서버에서는 그 정보가 맞는지를 판단, 맞는다면 사용자의 컴퓨터에 쿠키를 이용해서 임시로 자료를 저장하는겁니다.

그 자료를 이용해서 지금 서버에 접속해 있는 사용자가 로그인을 정식으로 한 사용자인지 판단할수가 있죠.

그럼 실질적으로 사용하는 방법을 알아봅시다.

SetCookie() 라는 함수를 이용하면 됩니다.

setcookie(이름, 값, 해제시간, 디렉토리)

그럼 이제 하나하나 알아볼까요?

당근 이름은 쿠키값의 이름입니다.

정하기 나름이죠.

값또한 마찬가지이겠죠?

중요한 해제시간이 모냐면 쿠키가 살아있는 시간을 지정하는 겁니다.

이때 time()라는 함수를 이용합니다.

time()는 현재 시간을 알려주는 함수입니다.

만약 쿠키값에 time()+3600 이라고 하면 현재시간에서 1시간을 더한겁니다.

즉 쿠키가 유용한 시간은 1시간인거죠.

만약 쿠키시간을 따로 안정하고 브라우저를 종료할때까지 유용하게 할라면 "" 를 입력하면 됩니다.

그럼 브라우저를 종료함과 동시에 해당 쿠키값은 사라지죠.

저기 3600은 초로 계산을 하는 겁니다.

그럼 그 뒤에 디렉토리는 서버의 어떤 디렉토리에 있을때 그 쿠키값이 유용한지를 아는 것입니다.

보통은 사용할 필요가 없지만 자신의 계정 전체 디렉토리에서 쿠키를 사용하기를 원할때는 "/" 를 넣어주면 됩니다.

그럼 실제로 한번 해볼까요?

setcookie("user_id", $id, "", "/");

위의 사용예는 user_id 라는 쿠키를 $id가 가지고 있는 값으로 생성하는 거죠.

시간은 브라우저를 닫을때까지 유용하고 현재 자신의 계정의 전체 디렉토리에 적용을 하는 겁니다.

setcookie("log_in", "ok", "time()+60");

만약 위와 같이 사용하면 log_in 이라는 쿠키를 "ok" 라는 값을 넣구, 1분간의 시간을 주는 겂니다.

그럼 이 쿠키를 직접 사용할때는 어떻게 할까요?

바로 $HTTP_COOKIE_VARS 라는 환경변수를 사용하면 됩니다.

이 변수는 사용자가 설정하는 것이 아니라 PHP에서 제공하는 함수입니다.

현재 디렉토리에 적합한 살아(?)있는 쿠키를 저장하고 있는 변수입니다.

$HTTP_COOKIE_VARS[lon_in] 이라고 하면 "ok"의 값을 가지고 있죠.

쿠키라는 생소한 이름에 비하면 사용하기가 매우 쉽습니다.

참, 만약에 어떤 함수내에서 쿠키값을 알고자 한다면 꼭 $HTTP_COOKIE_VARS를 전역 변수로 지정을 해줘야 합니다.

function test()
{
global $HTTP_COOKIE_VARS;

if($HTTP_COOKIE_VARS[user_id]=="zero"){ ... }
}

위와 같이 하면 되죠.

다른 변수들도 마찬가지로 함수안에서 외부의 변수를 쓰고자 하면 global 로 지정을 해준 다음 써야해요~~

이상 쿠키 끝~~

제목 글쓴이 날짜
Centos yum을 이용한 매일밤 자동업데이트 ひりゅう. 2015.01.14
폰갭 어플 연결시 admob 광고 추가 방법 지인에드컴 2015.01.14
1.7.9 mp3확장명 통합검색시 다운로드 문제 임시 조취 꾸링 2015.01.13
윈도즈에서 PHP3와 MySQL 설치 [40] zero 2000.03.06
페이지에 명언,좋은글,책속의 한줄 랜덤으로 뿌리기 [1] file 고니 2014.12.02
[PHP 기초] 사용법, 기본 문법 [8] 난다날아 2011.03.23
날짜비교 함수 [1] 별을따는소년 2014.12.17
[수정1차] XE 1.7.X 용 nginx rewrite rule 입니다! [15] CM(OEZ) 2013.02.21
nginx Tip 업로드시 [Error Code: HTTP Error, File name: 파일명, Message: 413] 뜰떄 [3] leave 2011.08.18
nginx에서 짧은 주소가 동작하지 않는 경우 해결 [3] Gunmania 2013.03.24
[익스10] 스케치북 갤러리 사용시 목록 썸네일 오류현상 해결하기 [4] file imgXE™ 2013.05.16
timezone (타임존) 관련한 문제 (SERVER, DBMS, PHP, XE) [2] 세상의모든계산기 2015.01.07
우분투 nginx + php + MariaDB 에 XE 설치하기 (+Rewrite) [2] file Neder 2013.06.22
게시글을 삭제하면 해당 글 내부에 첨부된 첨부파일이 서버에서 사라지지 않는 버그 수정법 [6] sejin7940 2015.01.05
XE 쉬운설치에 sftp 이용하기 [6] 비나무 2011.03.15
화일첨부 디렉토리의 빈 폴더 삭제... [13] 카르마 2012.01.20
사이트 잠금 수동으로 풀기 StyleRoot 2015.01.07
사용자정의 기준 정렬과 사용자정의 검색이 동시에 작동하도록 기능 개선 [2] sejin7940 2015.01.06
phpmyadmin 설치뒤 setup 스크립트는 삭제해야 [1] YJSoft 2014.11.12
게시판 최초 정렬을 사용자정의(확장변수) 기준으로 설정 가능하게 하는 방법 [8] sejin7940 2014.01.20