2012-01-20 5 views
0

최근 수정 사항이 필요한 장바구니를 구현했습니다.세션을 쿠키로 바꾸기

장바구니 개체는 $_SESSION['cart']에 저장됩니다. 브라우저가 닫히면 세션이 활성 상태로 남아 있지 않기 때문에 브라우저를 닫으면 카트가 손실됩니다.

이 문제를 해결하는 방법은 장바구니 개체를 세션이 아니라 수명이 긴 쿠키에 저장하는 것입니다.

빠른 픽스를 알고 있거나 정말로 모든 소스 파일을 가져와 쿠키로 세션을 대체해야합니까?

답변

4

세션은 일반적으로 쿠키로 식별되며 기본적으로 브라우저가 닫힌 후에 쿠키가 제거됩니다. 그래서 오래 지속될 세션을 만들려면 (또는 영원히) PHP 엔진의 session.cookie-lifetime 매개 변수를 조정해야합니다. 여기에 the docs on that입니다.

+0

'session.cookie-lifetime'은 세션 수명을 브라우저의 수명보다 연장 할 수 없다는 것을 알고 있습니다. – Dimme

+1

Documentation says : _ 값 0은 "브라우저가 닫힐 때까지"를 의미합니다. 기본값은 0입니다. 그러나 0보다 클 수 있습니다. 1 년에 몇 초를 배치 할 수 있으며 비활성 세션은 1 년 동안 지속됩니다. – AlexZam

+0

은 세션의 GC 최대 시간을 조정해야 할 수도 있습니다. 그렇지 않으면 쿠키가 만료되기 전에 세션 데이터가 가비지 수집 될 가능성이 매우 희박합니다. – CD001

1

나는 모든 수정 작업을해야 할 것이라고 생각합니다. 다행히도 검색을 수행하고 여러 파일을 대체 할 수있는 그래픽 인터페이스를 제공하는 Regexxer이라는 편리한 검색 및 바꾸기 도구 (Linux 용)가 있습니다.

1

serialize() 및 base64_encode() & base64_decode를 사용하지 않고 해당 종류의 데이터를 쿠키에 저장할 수 있는지 확신하지 못합니다. 아마도 뭔가를 명심해야합니다.

관련 문제