2012-02-29 2 views
2

일단 업로드 된 스크립트는 사용자가 업로드 할 제목을 편집 할 수있는 5 분 세션입니다. 내가이 false로 true로 내가 변경 ci_sessions 테이블 'sess_encrypt_cookie'를 사용하는 변경하려고 할 때Codeigniter 세션은 'sess_use_database'가 아닌 경우에만 작동합니다.

$config['sess_cookie_name']  = 'if_session'; 
$config['sess_expiration']  = 300; 
$config['sess_expire_on_close'] = FALSE; 
$config['sess_encrypt_cookie'] = TRUE; 
$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; 

지금 'sess_use_database'세션이 설정 그냥 로컬 쿠키 때 그것은 모든 작업 괜찮아요.

데이터가 데이터베이스에 표시되지만 세션 검색 코드가 세션을 찾지 못했습니다!

<?php if ($this->session->userdata('edit')) : ?> 
<?php $session_info = $this->session->userdata('edit'); ?> 
<?php $ids_array = explode(",", $session_info['image_id']); ?> 
<?php foreach ($ids_array as $id): ?> 
<?php 
if ($id == $alpha_id 
&& 
$this->session->userdata('ip_address') == $_SERVER['REMOTE_ADDR'] 
&& 
$session_info['session_id'] == $this->session->userdata('session_id')) : 
?> 

왜 쿠키로 작동하는지 지금 알 수 있습니까? 감사합니다

대한 추가 정보 : DB를 설정 http://pastebin.com/qDbBQu8h

세션 CHECK 코드 http://pastebin.com/cSmZqcAE

세션 SET 코드 http://pastebin.com/wZf3mGW5

+0

세션 테이블을 생성 할 때 사용한 CREATE TABLE 문을 보여줄 수 있습니까? –

+0

@FrancisAvila 내가 가지고 있지는 않지만 구조가 도움이된다면 http://i39.tinypic.com/29uol1h.png – eeek

+0

표를 phpMyAdmin으로 내보내고 위에 구조를 게시하십시오. 도움이 필요하면 더 많은 정보를 게시해야합니다. – Seabass

답변

0

당신이 codeigiter 세션 라이브러리를로드 한?

'session_id' => $this->session->set_userdata('session_id') 

사용됩니다

$this->load->library('session'); 
1

문제는이 줄 것 같다 먼저 라이브러리 autoload.php에서 또는 컨트롤러에서 확인 하중을, 아직하지로드 세션 라이브러리처럼 userdata 대신 set_userdata.

+0

이 작동하지만 내 CHECK 코드는 세션을 가져 오지 않습니다. 세션에서 user_Data를 heres합니다. http://pastebin.com/JJngLvFc – eeek

+0

제공된 코드로 말하기가 매우 어렵습니다. 전체 코드를 게시 할 수 있습니까? –

+0

그리고이 줄을 $ this-> session-> userdata ('ip_address') == $ _SERVER [ 'REMOTE_ADDR']에 넣지 않아도되는 대신에 $ config [ 'sess_match_ip']를 true로 설정할 수 있습니다 너 한테 똑같은거야. –

관련 문제