add chrome session set function from gnuboard5

This commit is contained in:
Amberstone 2024-09-29 09:46:26 +09:00
parent 86a086139c
commit a1bc96cf1d
Signed by: amber
GPG key ID: 094B0E55F98D8BF1

View file

@ -178,6 +178,30 @@ function strip_slashes_deep($value)
return is_array($value) ? array_map('strip_slashes_deep', $value) : stripslashes($value); return is_array($value) ? array_map('strip_slashes_deep', $value) : stripslashes($value);
} }
function chrome_domain_session_name()
{
// 크롬90버전대부터 아래 도메인을 포함된 주소로 접속시 특정조건에서 세션이 생성 안되는 문제가 있을수 있다.
$domain_array = [
'.cafe24.com', // 카페24호스팅
'.dothome.co.kr', // 닷홈호스팅
'.phps.kr', // 스쿨호스팅
'.maru.net', // 마루호스팅
];
$add_str = '';
$document_root_path = str_replace('\\', '/', realpath($_SERVER['DOCUMENT_ROOT']));
if (G5_PATH !== $document_root_path) {
$add_str = substr_count(G5_PATH, '/') . basename(dirname(__FILE__));
}
if ($add_str || (isset($_SERVER['HTTP_HOST']) && preg_match('/(' . implode('|', $domain_array) . ')/i', $_SERVER['HTTP_HOST']))) { // 위의 도메인주소를 포함한 url접속시 기본세션이름을 변경한다.
if (!defined('G5_SESSION_NAME'))
define('G5_SESSION_NAME', 'G5' . $add_str . 'PHPSESSID');
@session_name(G5_SESSION_NAME);
}
}
include_once __DIR__ . "/classes/event_handler.php"; include_once __DIR__ . "/classes/event_handler.php";
$extra_headers = [ $extra_headers = [
@ -454,6 +478,8 @@ if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
ini_set("session.cookie_domain", G5_COOKIE_DOMAIN); ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);
chrome_domain_session_name();
@session_start(); @session_start();
//============================================================================== //==============================================================================