2013-10-04 2 views
1

CodeIgniter에서 개발중인 응용 프로그램이 있습니다. 하지만 세션 관리에 문제가 있습니다. 기본적으로 CodeIgniter의 세션은 방문자의 컴퓨터에 저장됩니다. 즉, 닫기 작업 (방문자가 브라우저를 닫음)에서 삭제되지 않고 약 2 시간 동안 지속됩니다. 우리 모두는 PHP가 브라우저가 실행되는 동안 세션을 유지한다는 사실을 알고 있으며, 사용자가 닫으면 PHP가 종료 될 것입니다.CodeIgniter 세션과 쿠키

내 문제 : 나는 CI 세션 스타일을 좋아하지만, 어떤 특정한 목적을 위해, 어떤 경우에는 PHP 세션 스타일 (브라우저가 닫힐 때 삭제됨)이 필요합니다. CI는 그런 옵션을 제공하지만 브라우저를 닫을 때 모든 세션을 삭제하지 않습니다. 브라우저를 종료 할 때 제거해야하는 세션 값은 두세 개만 있으면됩니다. 세션을 브라우저에서 삭제해야하는 인스턴스의 경우 PHP 순수 세션으로 돌아 가야합니까? 또는 CI에는 개별 vlaues의 세션 수명을 사용자 정의하기위한 몇 가지 옵션이 있습니까? 사전

답변

0

에서

덕분에 당신은/변경 파일 응용 프로그램에서/설정/config.php 파일을 sess_expiration의 설정 변수의 값을 설정할 수 있습니다 - 기본 7200 초 (2 시간)입니다. 만료되지 않게하려면 0으로 설정하십시오. 또 다른 유용한 변수는 sess_expire_on_close입니다. http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

다른 유형의 세션에서 사용자 정의하려는 경우 CI 코드를 기반으로 고유 한 세션 클래스를 만들거나 새 클래스를 만들거나 CI_Session 클래스를 확장하여 다른 세트에서 읽을 수 있습니다. 구성 변수 중. https://github.com/EllisLab/CodeIgniter/blob/develop/system/libraries/Session/Session.php

+0

나는 이미 알고 있습니다. 필요한 것은 session_expire_on_close를 모든 세션이 아닌 일부 세션에서만 사용하는 것입니다. –

+1

댓글에 대한 업데이트를 참조하십시오.이 질문에 대한 답변을 원하면 – rnk

+0

예. 나는이 아이디어를 가지고 있었지만 그것에 대해 의심했다. 감사 –

관련 문제