2013-02-25 6 views
1

나는 example.com/page1과 같은 주소를 가지고 있습니다. 예를 들어 방문자의 사용자 에이전트는 다음과 같습니다 : Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146. session_id()을 실행했고 PHP 세션 ID는 12345입니다. 임시 폴더 내에 "sess_12345"파일이 있습니다. 그것에는 모든 세션 변수가 있습니다.사용자 에이전트가 변경된 후 PHP 세션이 파괴되었습니다.

일부 처리가 끝나면 example.com/page2으로 리디렉션됩니다. 방문자의 사용자 에이전트가 다음으로 변경됩니다 : Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 Twitter for iPhone. session_id()을 다시 실행하여 ID가 ​​여전히 12345인지 확인합니다. 그러나 "sess_12345"파일을 검사하면 삭제 된 것을 볼 수 있습니다.

사용자가 "iPhone 용 Twitter"응용 프로그램에서 내 웹 사이트를 방문한 경우에만 발생합니다. 사용자 에이전트 변경으로 인해 세션 파일이 삭제 된 것 같지만 확실하지 않습니다. 그 원인은 무엇일까요?

는 (세션이 경우를 제외하고 성공적으로 작동합니다. 내가 CakePHP는 2.4를 사용)

답변

1

케이크는 브라우저의 사용자 에이전트를 확인하는 설정이 있습니다. 변경하면 세션이 삭제됩니다. 이 설정을 해제하십시오.

Session.checkAgent

관련 문제