질문 Q #11538
ajax 세션 유지실패에 대해서 질문을 드립니다.
bld 2014-08-11 10:52:14
게시판을 만들면서 댓글 기능을 AJAX를 이용하여 구현을 했는데, 이상하게 자꾸 4~5분 간격으로 세션을 잃게 되어서

검색을 해보니 http://www.codeigniter-kr.org/qna/view/11279/page/1/q/ajax%20%EC%84%B8%EC%85%98에서 저와 유사한 케이스가 있어서 저기에 나와있는 방법대로 application/libraries밑에 MY_Session.php파일을 만들어

/**
 * ------------------------------------------------------------------------
 * CI Session Class Extension for AJAX calls.
 * ------------------------------------------------------------------------
 *
 * ====- Save as application/libraries/MY_Session.php -====
 */

class MY_Session extends CI_Session {

    // --------------------------------------------------------------------

    /**
     * sess_update()
     *
     * Do not update an existing session on ajax or xajax calls
     *
     * @access    public
     * @return    void
     */
    public function sess_update()
    {
        $CI = get_instance();

        if ( ! $CI->input->is_ajax_request())
        {
            parent::sess_update();
        }
    }

}

// ------------------------------------------------------------------------
/* End of file MY_Session.php */
/* Location: ./application/libraries/MY_Session.php */ 
위 코드를 넣어줬지만, 계속 세션을 잃게 됩니다.

 혹시 다른방법이 있거나 조언 부탁드리겠습니다..ㅠㅠ
답변 4
#1 letsgolee 2014-08-11 17:57:32
config 상의 세션관련 설정은 어떻게 하셨나요? 세션은 만료 기간이 있어 그 기간에 대한 확인도 해보아야 합니다.
#2 bld 2014-08-11 19:29:09
config 상의 세선 관련 설정은 아래와 같습니다.

$config['sess_cookie_name']        = 'ci_session';
$config['sess_expiration']        = 7200;
$config['sess_expire_on_close']    = TRUE;
$config['sess_encrypt_cookie']    = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']        = 'ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent']    = TRUE;
$config['sess_time_to_update']    = 300;
#3 letsgolee 2014-08-12 08:24:53
$config['sess_time_to_update']    = 300;

여기에 답있네요. 300 이니까 5분이 되고 이 기간이 지나면 업데이트가 됩니다. 이 기간을 최대한 길게 해주시면 됩니다.
#4 bld 2014-08-12 11:49:29
아하! 답변 감사드립니다!! 해결되었습니다!