2013-08-09 2 views
0

(최신) Codeigniter에 이상한 문제가 있습니다. 내 로그인에 세션 클래스를 사용합니다. 로그인 한 후 세션에 일부 사용자 데이터를 저장합니다.리디렉션 후 Codeigniter 세션이 제거되었습니다.

로컬 응용 프로그램을 개발했으며 로그인이 정상적으로 작동합니다. 응용 프로그램이 끝나면 웹 서버 http://mijn.exova.nl/에 업로드했습니다. 응용 프로그램은 하루 동안 정상적으로 작동했습니다. 그러나 나중에 세션은 로그인 후에 저장되지 않습니다. 로컬에서 코드를 다시 업로드했지만 문제가 여전히 존재합니다. 리디렉션 전에 세션이 여전히 존재합니다. 리디렉션 후에 세션이 비어 있습니다.

코드 :

구성 설정 세션 (있는 기본) (라이브러리)

$config['sess_cookie_name']  = 'ci_session'; 
$config['sess_expiration']  = 7200; 
$config['sess_expire_on_close'] = FALSE; 
$config['sess_encrypt_cookie'] = FALSE; 
$config['sess_use_database'] = FALSE; 
$config['sess_table_name']  = 'ci_sessions'; 
$config['sess_match_ip']  = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 
$config['cookie_prefix']  = ""; 
$config['cookie_domain'] = ""; 
$config['cookie_path'] = "/"; 
$config['cookie_secure'] = FALSE; 

창조 세션

$this->CI->session->set_userdata('exova_login', true); 
$this->CI->session->set_userdata('exova_userdata', $userdata); 
$this->CI->session->set_userdata('exova_rollen', $rollen); 
$this->CI->session->set_userdata('exova_school', $school); 

리디렉션 (세션 해두 전에, 후 세션이 비어 있음)

redirect(base_url()); 

누군가이 문제의 원인을 알고 있습니까? 감사!

+0

내 응용 프로그램과 비슷한 문제가 있습니다. 그러나 나는 내 실수를 알고있다. 어쩌면 당신은 똑같은 일을하고 있을까요? : 사용자가 로그인 할 때 일부 기본 설정을 지정합니다. 사용자가 로그 아웃 할 때 세션을 삭제하지 않습니다. 난 단지 환경 ​​설정이 비어 있습니다 (set_userdata ('mypref', "")). 사용자가 다시 로그인하려고하면 실패합니다. 모든 정보가있는 브라우저 캐시를 삭제하고 다시 로그인 해보십시오. 리디렉션을 수행하는시기를 잘 모르겠습니다. 어쩌면 그것은 필요한 정보일까요?! – zuluk

+0

안녕 Zuluk. 제 경우에는 세션이 로그 아웃시 파괴되어 문제가 아닙니다. 하지만 귀하의 의견에 감사드립니다! – JelleP

+0

게시 한 모든 코드는 문제가없는 것으로 보입니다. 더 많은 코드를 게시하지 않으면 누구에게도 도움이되지 않을 수 있습니다. 디버깅을 시도 했습니까 (로그인 전/도중/후에 세션의 변수/세션 값을 반향 출력 했습니까?) 로그에 오류가 있습니까? – Jeemusu

답변

0

다시 작동합니다! 정확한 문제는 알 수 없지만 모든 브라우저 데이터를 제거하면 다시 작동합니다. 세션을 두 번 설정하는 것이 아니라는 사실을 알게되었습니다. 나는 이것을 다음과 같이 덧붙여 해결했다 :

if($this->CI->session->userdata('exova_login') == false){ 

arround 세션 세트. 세션은 두 번 설정되지 않으며 이러한 문제를 피할 수 있습니다. 의견에 감사드립니다.

관련 문제