common.lib.php 안에 있는 set_session 함수

common.lib.php 안에 있는 set_session 함수

QA

common.lib.php 안에 있는 set_session 함수

답변 1

본문


// 세션변수 생성
function set_session($session_name, $value)
{
    global $g5;
 
    static $check_cookie = null;
    
    if( $check_cookie === null ){
        $cookie_session_name = session_name();
        if( ! isset($g5['session_cookie_samesite']) && ! ($cookie_session_name && isset($_COOKIE[$cookie_session_name]) && $_COOKIE[$cookie_session_name]) && ! headers_sent() ){
            @session_regenerate_id(false);
        }
 
        $check_cookie = 1;
    }
 
    if (PHP_VERSION < '5.3.0')
        session_register($session_name);
    // PHP 버전별 차이를 없애기 위한 방법
    $$session_name = $_SESSION[$session_name] = $value;
}

저는 $check_cookie가 뭘 하는지부터 모르겠어서 이 함수를 이해하는 것이 너무 어렵습니다.

다른 내용들도 $cookie_session_name 과 같은 것들이 어떤 역할을 하는지 설명좀 해주세요 ㅠㅠ

이 질문에 댓글 쓰기 :

답변 1

해당 코드는 크롬브라우저의 쿠키 samesite none 이슈를 해결하기 위해 코드입니다.

 

https 환경에서 PHPSESSID 쿠키에 samesite none 이 안되어 있는 상태에서 타 도메인에서 이동시 세션이 풀릴경우,

 

session_regenerate_id 함수를 이용해서 현재 세션정보를 유지하면서, PHPSESSID 쿠키에 samesite none 처리를 하기 위해서 해 놓은것입니다.

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