자바스크립으로 쿠키 설정하기


[CODE type=javascript]//쿠키 초 단위로 설정하는 함수
function setCookieTime(name, value, mSecond) {
var today = new Date();
var expire = new Date(today.getTime() + mSecond);

window.document.cookie = name + "=" + escape(value) + ((expire) ? ";path=/; expires=" + expire.toGMTString() : "");
}

// 날짜 단위로 설정하는 함수
function setCookie(name, value, days) {
setCookieTime(name, value, days * 24 * 60 * 60 * 1000);
}

// 쿠키 읽어오는 함수
function getCookie(uName) {
var strCookie = " " + window.document.cookie;
var ptrFr = strCookie.indexOf(" " + uName + '=');

if (ptrFr != -1) {
ptrFr = ptrFr + uName.length + 2;
ptrTo = strCookie.indexOf(';', ptrFr);

if (ptrTo == -1) {
ptrTo = strCookie.length;
}
return unescape(strCookie.substring(ptrFr, ptrTo));
} else {
return "";
}
}[/CODE]


사용 예제)

setCookie( "Tester", "234", 30 );

var Tester = getCookie( "Tester" );

alert( Tester );


이렇게 사용하면 Tester에 234라는 값이 들어가게 된다.

이 쿠키의 setCookieTime의 window.document.cookie에 들어가는 값을 보면
window.document.cookie = "쿠키이름=쿠키의값;path=/;expires=유효기간;domain=도메인";

이렇게 되어있다.

path는 이 쿠키의 값을 읽어올 수 있는 경로의 범위이다. path값을 안넣어주면
이 쿠키가 설정되는 문서의 위치의 디렉토리와 하위디렉토리까지 문서에서만 사용할수가 있게 된다.
즉, 만약 상위 디렉토리에 있는 문서에서 이 쿠키값을 가져올 수가 없는 것이다.
path로 '/'를 주게 되면 루트 도메인에서부터 하위 디렉토리 전체에서 이 쿠키값을 사용할 수 있게 된다.
이 것을 모르고 2일 간을 고생했다.(괜히 쿠키 버그 탓 하고 있었다..ㅡㅡ;;)

도메인은 위의 경로처럼 한 사이트에서 만든 쿠키가 다른사이트에 영향을 주지 않으므로 적용될 도메인을
기록하면 된다. 생략하면 자동으로 사이트의 기본 도메인으로 설정된다.

유효기간은 설정하지 않으면 익스플로워를 닫을때까지 유효하게 된다.


그리고 생성된 쿠키의 값을 보면

*
Tester
234
www.test.co.kr/
1600
3762760832
29884808
1686902864
29881791
*


이렇게 들어가져있는 것이 보인다.
처음에는 쿠키 이름, 쿠키의 값, 쿠키가 적용될 사이트 이름, 그 밑으로는 아마 유효기간이나 기타 등등
정보가 저장된 듯 하다.

자세한건 책을 좀더 찾아봐야할 것 같고 여기서는 간단하게 쿠키를 자바스크립트로 저장하고 불러오는것만
알아보았다.

참고 : 굄돌님의 블로그 글
황로거님의 블로그 글
이명헌 경영스쿨


Powered by Tattertools