잘되던 사이트가 session_start가 안돼요

잘되던 사이트가 session_start가 안돼요

QA

잘되던 사이트가 session_start가 안돼요

답변 4

본문

commom.php 안에 아래와 같이 설정되어 있는데요..

오늘 갑자기 session_start가 안돼요.

무슨 이슈가 있는걸까요?

 

 

//==============================================================================
// SESSION 설정
//------------------------------------------------------------------------------
@ini_set("session.use_trans_sid", 0);    // PHPSESSID를 자동으로 넘기지 않음
@ini_set("url_rewriter.tags",""); // 링크에 PHPSESSID가 따라다니는것을 무력화함 (해뜰녘님께서 알려주셨습니다.)

session_save_path(G5_SESSION_PATH);

if (isset($SESSION_CACHE_LIMITER))
    @session_cache_limiter($SESSION_CACHE_LIMITER);
else
    @session_cache_limiter("no-cache, must-revalidate");

ini_set("session.cache_expire", 180); // 세션 캐쉬 보관시간 (분)
ini_set("session.gc_maxlifetime", 10800); // session data의 garbage collection 존재 기간을 지정 (초)
ini_set("session.gc_probability", 1); // session.gc_probability는 session.gc_divisor와 연계하여 gc(쓰레기 수거) 루틴의 시작 확률을 관리합니다. 기본값은 1입니다. 자세한 내용은 session.gc_divisor를 참고하십시오.
ini_set("session.gc_divisor", 100); // session.gc_divisor는 session.gc_probability와 결합하여 각 세션 초기화 시에 gc(쓰레기 수거) 프로세스를 시작할 확률을 정의합니다. 확률은 gc_probability/gc_divisor를 사용하여 계산합니다. 즉, 1/100은 각 요청시에 GC 프로세스를 시작할 확률이 1%입니다. session.gc_divisor의 기본값은 100입니다.

session_set_cookie_params(0, '/');
ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);

 

 


// @session_start();
//==============================================================================


//==============================================================================
// 공용 변수
//------------------------------------------------------------------------------
// 기본환경설정
// 기본적으로 사용하는 필드만 얻은 후 상황에 따라 필드를 추가로 얻음
$config = sql_fetch(" select * from {$g5['config_table']} ");

// 본인인증 또는 쇼핑몰 사용시에만 secure; SameSite=None 로 설정합니다.
if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER) ) {
    // Chrome 80 버전부터 아래 이슈 대응
    // https://developers-kr.googleblog.com/2020/01/developers-get-ready-for-new.html?fbclid=IwAR0wnJFGd6Fg9_WIbQPK3_FxSSpFLqDCr9bjicXdzy--CCLJhJgC9pJe5ss
    if(!function_exists('session_start_samesite')) {
        function session_start_samesite($options = array())
        {
            $res = @session_start($options);

            // IE 브라우저 또는 엣지브라우저 일때는 secure; SameSite=None 을 설정하지 않습니다.
            if( preg_match('/Edge/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT']) ){
                return $res;
            }

            $headers = headers_list();
            krsort($headers);
            foreach ($headers as $header) {
                if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue;
                $header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None';
                header($header, false);
                break;
            }
            return $res;
        }
    }

    session_start_samesite();
} else {
    @session_start();
}
//==============================================================================
 

이 질문에 댓글 쓰기 :

답변 4

하드용량이 다 찼는지 한번 확인해보세요.

이런경우 3가지 원인을 보실수 있습니다. 

 

1. 호스팅을 이용하실경우 하드 용량을 100% 로 차있는지 확인해보시기 바랍니다. (세션을 저장할 공간이 없을경우 이런현상이 발생됩니다.)

 

2. 해당 세션저장 경로의 퍼미션을 확인해보시기 바랍니다. (세션이 저장이 안될경우) 

 

3. session_start()를 사용할경우 html 의 상단에 반드시 정의하셔야합니다.  (지금 소스를 보시면 중간정도 에 있는데요..이부분 최상단으로 한번 올려보시기 바랍니다.

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 954
© SIRSOFT
현재 페이지 제일 처음으로