common.lib.php 안에 있는 set_session 함수
본문
// 세션변수 생성
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 처리를 하기 위해서 해 놓은것입니다.
답변을 작성하시기 전에 로그인 해주세요.