2012-12-14 6 views
3

세션 처리를 위해 Codeigniter 2.1.0과 CI_session을 사용하고 있습니다.Codeigniter - 신비하게 사라지는 세션 변수

나는이

  1. 페이지 A가 $를 사용하여 세션에서 일부 변수를 this-> 세션 -> set_userdata()을 설정한다고 가정합니다.
  2. 페이지 A는
  3. 페이지 B는

그러나이

  1. 페이지 A를 세트 나에게 일어나는 것이다 페이지 A에 설정 한 세션 변수를 유지할 것으로 예상된다 페이지 B로 리디렉션 세션의 일부 변수는 $ this-> session-> set_userdata()를 사용합니다.
  2. 페이지 A는
  3. 페이지 B는

내가 저장> $ this-의 내용을 기록하는 페이지 A에서 코드를 페이지 A에서 설정 한 세션 변수를 유지하지 않는 페이지 B로 리디렉션 session-> userdata를 로그에 기록한 다음 페이지 B로 리디렉션합니다. 로그에는 세션에 설정된 값이 있음이 표시됩니다.

그러나 페이지 B의 $ this-> session-> userdata에 var_dump()를 사용하면 해당 값이 없음을 알 수 있습니다.

나는 이것이 어떻게 될 수 있는지 정말로 모른다. 나는 페이지 B의 값을 설정 해제하지 않는다는 것을 두 번 확인했습니다. CI_Session이 어떻게 든 뒤에서 설정을 해제하는 것과 같습니다.

아이디어가 있으십니까?

편집 : 예, 세션 데이터를 저장하려면 데이터베이스를 사용하고 있습니다. 필드 유형은 TEXT입니다.

+0

세션 데이터를 데이터베이스에 저장 하시겠습니까? 세션 데이터를 데이터베이스에 저장하지 않으려면 ... $ config [ 'sess_use_database'] = TRUE;'.. 그리고 확인 ... – bipen

+0

모든 브라우저? –

+0

모든 세션 데이터입니까? 아니면 그냥 그 중 일부는? 세션 데이터가 쿠키 제한 크기를 초과하면 모든 쿠키가 전달되지 않습니다. 이미 데이터베이스에 저장해보십시오. – Jeemusu

답변

1

네트워크에서 알 수 있듯이 쿠키와 세션은 서버가 아닌 클라이언트 시스템에 저장됩니다. 그래서 HTTP는 기본적으로 요청 헤더에 쿠키와 세션을 추가하고 요청을 보냅니다.

하지만이 경우 세션을 설정하고 서버의 동일한 페이지에서 리디렉션합니다. 일반 PHP는 이것을 다르게 처리 할 수 ​​있지만 codeIgniter는 기본 PHP 세션을 사용하지 않습니다. (http://ellislab.com/codeigniter/user-guide/libraries/sessions.html 참조)

이것은 내 생각입니다. 그러나 당신의 코드를 살펴보면 도움이 될 것입니다.