제목 | 세션에서 user_data 를 불러오질 못합니다. | ||
---|---|---|---|
글쓴이 | 왕기장군 | 작성시각 | 2012/03/09 14:36:42 |
|
|||
샘플 소스는 이렇습니다. public function login()
{
$this->load->library('session'); $data = array(
'id' => 'scv',
'logged_in' => TRUE
);
$this->session->set_userdata($data);
echo "OK";
}
이렇게 하면 DB 테이블에 데이터가 자알 들어갑니다. SESSION_ID
69fcece62716c623a264df56eda0741a
IP_ADDRESS 211.59.6.100 USER_AGENT Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11 LAST_ACTIVITY 1331271582 USER_DATA a:3:{s:9:"user_data";s:0:"";s:2:"id";s:3:"scv";s:9:"logged_in";b:1;} 그런데 메뉴얼에 보면... $this->session->userdata('logged_in') 하면 USER_DATA 컬럼의 값중에 logged_in 의 bool 값을 가져오는것 처럼 되어 있는데요... 어떻게 해도 가져오질 못하고 계속 FALSE 입니다. 페이지 상에 보이는 세션ID 값도비교해 봤고... $this->session->userdata('session_id'); 이것도 $this->session->all_userdata() 이것도 잘 가져 옵니다. 그런데 왜 user_data 컬럼은 못가져 올까요? 어떻게 해야 됩니까 DB 는 오라클 입니다. |
|||
다음글 | [초보]또 링크가 안돼요~ (3) | ||
이전글 | [초급]anchor의 사용법좀 알려 주세요~ (4) | ||
왕기장군
/
2012/03/09 15:12:05 /
추천
0
뭔가 방금 자답을 찾은것 같아서 글을 올렸는데 아니어서 지웠스습니다.ㅜㅜ 아.. 힘드네요
|
왕기장군
/
2012/03/27 08:35:10 /
추천
0
dd
|
왕기장군
/
2012/03/27 08:35:14 /
추천
0
ff
|
닥터케이
/
2015/12/10 15:00:02 /
추천
0
저도 지금 상태가 이런데... 답을 아시는 분 있나요?ㅜㅜ
|
kaido
/
2015/12/10 15:05:31 /
추천
0
var_dump($this->session->userdata('logged_in'));
일단 덤프부터 떠보세요. |
닥터케이
/
2015/12/10 15:46:01 /
추천
0
kaido님, login() 안에서 덤프를 뜨면 값이 나와요.
그런데, getItemList() 안에서는 bool(false) 값이 나와요ㅜㅜ 혹시 왜 이런지 아세요?? class GM extends CI_Controller { public function login() { .... $this->load->library('session'); $this->session->set_userdata('user_seq', '42'); .... } public function getItemList() { $this->load->library('session'); var_dump($this->session->userdata('user_seq')); .... } } |
kaido
/
2015/12/10 16:06:06 /
추천
0
login() 여기에서는 $this->session->userdata() 값이 나오는데
getItemList() 에서는 $this->session->userdata() 값이 안나온다는 말씀이신 거죠? |
닥터케이
/
2015/12/10 16:11:50 /
추천
0
네, 맞아요ㅜㅜ 혹시 config.php 도 알려드려요.. $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;
|
kaido
/
2015/12/10 16:21:28 /
추천
0
세션이 저장 안 되고 있습니다. login에서는 객체에 값을 저장하고 호출 했으니 당연히 바로 나옵니다. 그런데 다른 페이지에서는 세션 값이 안나오는 이유는 세션값이 없기 때문입니다. 참고로... $this->session->userdata() 이렇게 호출 하면 값이 없으면 자동으로 false 를 넣어 줍니다. $this->session->userdata[] 이렇게 호출 하면 값이 없으면 null point 에 대한 에러 값이 나옵니다. 보통 세션 설정을 문제입니다.파일 타입으로 세션을 잡아 놓았는데, 세션 파일이 정상으로 저장 되지 않으면 나오는 현상 입니다.디비로 잡아 놓았을 경우, 디비에 저장이 정상적으로 안되거나, 매치가 안되고 있는 현상 입니다. |
변종원(웅파)
/
2015/12/10 16:26:09 /
추천
0
$config['sess_match_useragent'] = TRUE; <- false로 바꾸시고 쿠키명에서 _(언더바) 빼고 테스트 해보세요. |
닥터케이
/
2015/12/10 17:21:06 /
추천
0
$config['sess_match_useragent'] = FALSE; 로 바꿨어요. 그런데, login() 에서 {"session_id": "ebafa303afebfd548195d3cb31b11aab", "ip_address": "192.168.0.1", "user_agent": "UnityPlayer/5.2.3f1 (http://unity3d.com)", "last_activity": 1449737159, "user_data": "", "user_seq": "42"} getItemList() 에서는 { ["session_id"]=> string(32) "948429d9659c222f19e5fc9d46ffe4e7" ["ip_address"]=> string(11) "192.168.0.1" ["user_agent"]=> string(40) "UnityPlayer/5.2.3f1 (http://unity3d.com)" ["last_activity"]=> int(1449737162) ["user_data"]=> string(0) "" } 쿠키가 새로 생성되어요ㅜㅜ 이 부분 도움 부탁드려요~~ 찾고(세션유지), 해보고 있는데 잘 안되어서 이렇게 여쭤요...
찾다보니까 안드로이드에서 세션이 확실하지 않다고 나오는데, 유니티도 그런가요?? 클라이언트가 유니티고 서버를 코드이그나이터로 개발 중이거든요. |
닥터케이
/
2015/12/10 17:49:42 /
추천
0
자답입니다. 유니티에서 세션이 변경되네요ㅜㅜ 웹 브라우저에서는 잘 되고요... |
닥터케이
/
2015/12/10 23:19:54 /
추천
0
답변 주신 kaido, 변종원님 감사합니다!! 덕분에 해결하였습니다~~ |