CI 묻고 답하기

제목 세션에 대해 궁금한 것이 있습니다~ 에유...잘 안풀리네요 ㅠㅠ
글쓴이 무명의시인2 작성시각 2011/06/26 13:44:00
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 18977   RSS

세션을 http://도메인/test/in 으로 하면 세션을 생성하고 main.php 에서 세션을 확인 할려고 하는데
세션 적용이 안되는지 잘 안되네요.

결론은 세션을 선언한 뒤에 어느 페이지던지 세션을 적용하고 싶은데 위에 것이 잘 안되네요 ㅠㅠ


버전은 CI 2.0.2입니다.


------------------------------------------------------------------
* config.php

$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 1800;
$config['sess_expire_on_close'] = false;
$config['sess_encrypt_cookie'] = false;
$config['sess_use_database'] = true;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = false;
$config['sess_match_useragent'] = true;
$config['sess_time_to_update'] = 300;
------------------------------------------------------------------


------------------------------------------------------------------

* DB 테이블 명 : ci_sessions

필드                  Collation

      session_id     utf8_bin
ip_address    utf8_bin
user_agent    utf8_bin
last_activity   
user_data      utf8_bin

------------------------------------------------------------------


------------------------------------------------------------------
* test.php
 

<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

class Test extends CI_Controller {
 
 function __construct() {
  parent::__construct();
 
  $this->load->helper(array('form', 'url'));
 }

    function index() {
 
  $this->load->view('test_v');
 
}
 
 function in(){
 
   $ss_data = array(      'ss_mb_id' => 'id1234',      'ss_mb_pw' => 'gggg',      'ss_mb_name' => '테스트입니다.',      'ss_mb_email' => 'abc@naver.com'     );      $this->session->set_userdata($ss_data); 

  redirect('/main');
 }
 
 function out(){
 
  $this->session->sess_destroy();
 
  redirect('');
 }
 
}


?>


------------------------------------------------------------------


------------------------------------------------------------------
* main.php
 

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Main extends CI_Controller {

 function __construct()
 {
  parent::__construct();

  $this->load->helper(array('form', 'url'));
 }

 public function index()
 {
  echo $this->session->userdata('ss_mb_id');
 
  $this->load->view('main_v');
 }
}

------------------------------------------------------------------

 다음글 세션로드 에러 (4)
 이전글 이메일 관련 질문 드립니다. (6)

댓글

변종원(웅파) / 2011/06/26 23:06:03 / 추천 0
Db에는 정상적으로 값이 들어가는지요?
무명의시인2 / 2011/06/27 01:47:59 / 추천 0

웅파님 // 네 정상적으로 user_data 필드에 값이 들어가는 것을 확인했습니다.

CI 매뉴얼이라면 어디서나 세션이 작동해야 하는데 이상하게 값이 출력 되지 않습니다.

제가 뭔가를 잘못한건지.....에휴

변종원(웅파) / 2011/06/27 09:50:00 / 추천 0
'sess_match_useragent' false로 바꿔서 해보시구요.

db에 저장되는 세션아이디와 컴퓨터의 쿠키명이 일치하는지도 보시구요.

무명의시인2 / 2011/06/27 19:44:52 / 추천 0
웅파님 // 웅파님 감사합니다. 해답을 찾았습니다.

db에 저장된 user_data 값을 확인한 결과!!!

세션을 생성할 때 'ss_mb_name' => '테스트입니다.'  이 값이 제대로 입력이 안되어 있더군요.

한글값을 db에 제대로 저장이 안되는 것 같습니다.

한글값을 입력을 할려면 어떻게 하면 될까요?
변종원(웅파) / 2011/06/28 15:29:18 / 추천 0
 db캐릭터셋과 프로그램 캐릭터셋을 맞춰보세요.
ci는 둘다 utf-8을 권장합니다. (ci뿐만 아니라 개발환경 전체..)
무명의시인2 / 2011/06/29 08:11:26 / 추천 0

웅파님 // 웅파님 고맙습니다.

설정을 해보겠습니다.