2011-07-26 2 views
0

좋아, 우리는 장바구니가있는 웹 사이트를 운영합니다. 시나리오는 다음과 같습니다. 고객이 현장에 와서 장바구니에 제품을 추가합니다. 그들은 저녁 식사를하고 체크 아웃하지 않고 장바구니에 항목을 남깁니다. 다음날 그들은 그 물건을 사고 싶어합니다. 그들은 웹 사이트에 가서 이미 장바구니에 있음을 알지 못하고 다시 장바구니에 추가하려고합니다. 재고가 없다는 오류가 표시됩니다 (재고가 하나뿐이므로 장바구니에 이미 있음).) 이제 우리는 판매를 잃는다.자바 스크립트 : 쿠키 2 개 생성 및 확인

내가하려는 것은 2 개의 쿠키를 만드는 것입니다. 하나는 7 일 (장바구니 쿠키와 동일)이고 다른 하나는 세션에 사용됩니다. 그것이 작동하는 방식은 다음과 같습니다. 첫 번째 방문은 7 일 동안 한 세션과 세션 동안 한 두 개의 쿠키를 생성합니다. 이제 고객이 제품을 추가하고 브라우저를 종료한다고 가정 해 보겠습니다. 세션 쿠키가 만료되어 7 일 쿠키가 남습니다. 이제 다시 돌아 오면 스크립트는 7 일 쿠키가 있는지 확인하지만 세션 쿠키가 아닌지 확인하여 내 자신의 코드 일부가 실행되도록합니다.

기본적인 구조는 다음과 같습니다.

If 7DayCookie Exists { 
    If SessionCookie Exists { 
     End Script; 
    } 
    Else if SessionCookie Does Not Exist { 
     [Insert My Own Code] 
    } 
} 

Else if 7DayCookie Does not Exist { 
    Create SessionCookie; 
    Create 7DayCookie; 
    End Script; 
} 

나를 위해이 모든 것을 만들 수있는 사람은 누구입니까? 나는 그것이 쿠키와 자바 스크립트로 아주 좋은 사람에게는 멋질 것이라고 생각한다.

미리 감사드립니다.


최종 작업 코드.

var wc = readCookie('wfwc'); 
var sc = readCookie('wfsc'); 

if (wc) { 
    if (sc) { } 
    else if (!sc) { 
     alert("It works."); 
    } 
} 

else if (!wc) { 
    createCookie('wfwc','week',7); 
    createCookie('wfsc','session',0); 
} 

답변

2

쿠키 기능은 매우 좋습니다 (Peter Paul Koch's quirksmode). 필요한 3 가지 함수는 createCookie, eraseCookie 및 readCookie입니다.

세션 쿠키의 경우 "만료"헤더가없는 쿠키를 만들어야합니다. 7 일 쿠키의 경우 7 일 후에 만료되는 쿠키를 생성하려고합니다. 같은

그런 다음, 자바 스크립트, 당신이 뭔가를 할 수 있습니다 : 그것은 엄격하게하지 비록 내가 PPK의 스크립트 나 자신을 사용

theme = readCookie("theme"); 
// if a cookie called "theme" isn't present, initialize. 
if (!theme) { 
    theme = "sky.json"; 
} 

, 나는 기능에 강제 형 변환을 방지하기 위해 ===하기 위해 ==를 변경 않았다 필요한.

+0

예, 방금 나 자신을 발견했습니다. 나는 그것에 대해 읽고있다. 감사. – Devin

+0

위 코드를 추가했습니다. 나는 그것을 작동시키는 것처럼 보일 수 없다. – Devin

+0

firebug (firefox의 경우) 또는 chrome 개발자 기능과 같은 디버깅 도구를 사용하여 쿠키가 올바르게 작성되었는지 확인해야합니다. –