lang/php

codeigniter session IE problem

C/H 2013. 5. 23. 19:26

참고

제시된 문제 해결방법 및 수정사항

  1. $config['sess_cookie_name'] = "ci_session";
    underscore(_)를 사용하지 마라 IE9에서는 underscore를 지원하지 않는다.
    ※ underscore 문제? 설마~
  2. 서버 타임존을 확인하고 맞춰라
  3. 새로운 프로젝트에서 CI를 사용할 경우 CI의 session class를 사용하지 마라
  4. CI session을 사용할 경우 PHP 의 $_SESSION을 사용하는 classs를 대체해서 사용하라
    Codeigniter Session IE problem
  5. $config['sess_match_useragent'] = FALSE;

문제해결
$config['sess_cookie_name'] = 'cisession';
$config['sess_match_useragent'] = FALSE;
유저 에이전트 확인을 하지 않게 수정해서 해결했습니다.

유추 할 수 있는 문제내용은 
  1. IE9에서 underscore(_) 미지원 ??????
    확인된 내용은 아닙니다. underscore 문제가 아니라 아래 useragent 변경때문일거라고 생각됩니다.
    하지만 underscore 생략을 권고하는것으로 보아 저도 underscore를 생략했습니다.
    ※ IE에서 underscore관련문제 RFC2396 domain name 정의방법에서 도메인은 문자로 시작해야하고, 문자 숫자로 끝나야하며 중간에 대시(-)가 올수 있다. StackOverflow IE cookie 문제
    그래서 IE에서 도메인에 underscore가 오면 에러가 난다.
  2. window.open등을 사용하거나 페이지 reload 시 useragent 내용 변경이 발생
    IE 의 Browser Mode 변경 기능 때문이 않을까 추측합니다.



* 문제 및 해결

결론은 Browser Mode 변경 기능 적용 일관성 문제.

<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]-->
를 전체 페이지에 동일하게 적용하거나 적용하지 않아야 합니다.( nothing or all )


그런 후 아래로 설정하면 문제없이 사용할 수 있습니다.
$config['sess_cookie_name'] = 'ci_session';
$config['sess_match_useragent'] = TRUE;

* crossdomain iframe load and window.open 에서 CI session 문제 및 해결



a.com과는 상관없이 b.com 의 세션 유지를 위한 설정

$config['sess_match_useragent']//TRUE;

IE에서 CI session 유지를 위해서는
$config['sess_match_useragent'] = FALSE;
정신건강에 좋다...


Set up
1. <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]-->
service page nothing or all
2. or
$config['sess_cookie_name'] = 'cisession';
$config['sess_match_useragent'] = FALSE;

Why IE problem because of the ability to change the Browser Mode is so. Useragent be changed like caused.


반응형

'lang > php' 카테고리의 다른 글

Ubuntu PHP XDebug & Eclipse  (0) 2014.05.04
RewriteEngind  (0) 2014.01.22
window xampp 에서 phpDocumentor2 설치  (0) 2013.03.25
TOAST - Unit Testing for CodeIgniter v. 1.5  (0) 2013.03.22
php mysql handlrsocket  (0) 2013.02.05