2012-06-05 2 views
1

세션, 브라우저 및 Magento (또는 해당 쇼핑 카트)와 관련하여 몇 가지 사항을 파악하는 데 문제가 있습니다. 기본적으로 24 분 동안 사용하지 않으면 세션이 종료됨을 이해합니다. 또한 브라우저를 완전히 종료하면 해당 세션도 종료된다는 사실을 이해하고 있습니다.Magento에서의 PHP 세션 이해

두 번째 부분을 테스트하려면 Magento 저장소에 액세스하여 제품을 장바구니에 추가하고 브라우저를 완전히 종료했습니다. 브라우저를 다시 열고 제품이 장바구니에 남아 있습니다. 그게 어때? PHP 가비지 수집기는 특정 시간에만 실행됩니까? 나는 그 세션이 죽을 것이라 생각하여 내 컴퓨터에 저장되어있는 쿠키에 연결할 수 없었다. 어떤 도움을 주셔서 감사합니다.

답변

4

네이티브 PHP 세션은 만료 0의 쿠키를 사용하며 브라우저 창을 닫으면 즉시 지워집니다. Magento의 세션 쿠키 (Emi에서 설명한 바와 같이)는 3 시간 만료되어 브라우저 세션간에 유지되므로 브라우저 창을 닫거나 열더라도 세션이 다시 시작되지 않습니다. Firefox 웹 개발자 툴바 또는 Chrome의 개발자 도구를 사용하면 강제로 쿠키를 지우고 원하는 경우 세션을 다시 시작할 수 있습니다.

쿠키 이름이 다르지만 만료 시간이 있지만 Magento는 PHP의 기본 세션 지원을 사용합니다. 즉, 최대 세션 수명 등과 관련된 php.ini의 설정도 Magento의 세션에 영향을 미칩니다.

또한 Magneto 1.6 (및 EE 1.11)에는 persistent shopping cart이라는 기능이있어 세션간에 장바구니를 유지하기위한 목적으로 장기 쿠키를 설정합니다. 세션 유지 여부를 확인하기위한 테스트에서 장바구니를보고있는 중일 때이 기능을 사용하면 실제 세션보다 세션이 훨씬 길어질 수 있습니다.

+0

+1 - 좋은 답변 – ShaunOReilly

1

서버는 실제로 창을 닫거나, 페이지에 머무르거나, 주변을 둘러 보는 것의 차이점을 알 수 없습니다. 최소한 Magento에 내장되어 있지 않은 추가 스크립팅이 필요하지 않습니다. 세션을 테스트하려면 24 분을 기다리거나 다른 브라우저를 사용하거나 서버의 모든 세션 파일을 지우십시오.

1

세션은 사이트의 서버에 로컬로 저장됩니다 (대부분 파일 시스템이지만 데이터베이스, apc, memcached와 같은 다른 유형의 데이터 저장소를 사용할 수 있습니다). 이는 local.xml에서 구성됩니다. 파일 시스템에 저장하면/path_to_site_root/var/sessions 아래에 있습니다. 'core/session', 'customer/session'및 'admin/session'세션을 사용하는 3 가지 모델이 있다고 생각합니다. 또한 PHP의 가비지 컬렉터 : http://ca.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime 브라우저를 닫으면 쿠키가 0으로 설정 만료 경우, 그것은 사용되지 않습니다

더 이상 http://ca.php.net/manual/en/function.setcookie.php 젠토의 기본 쿠키가 프론트 엔드라고 나는 그것이 적어도 및 시간 설정 만료 있다고 생각한다, http 만 있기 때문에 자바 스크립트에서이 쿠키를 수정할 수도 없습니다.