$path = str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME']));
if (defined('SESSION_USE_ROOT_COOKIE_PATH') &&
SESSION_USE_ROOT_COOKIE_PATH == 'True') $path = '/';
$path = (defined('CUSTOM_COOKIE_PATH')) ?
CUSTOM_COOKIE_PATH : $path;
$domainPrefix = (!defined('SESSION_ADD_PERIOD_PREFIX') ||
SESSION_ADD_PERIOD_PREFIX == 'True') ? '.' : '';
$secureFlag = ((ENABLE_SSL 'true' && substr(HTTP_SERVER, 0, 6) 'https:' && substr(HTTPS_SERVER, 0, 6) 'https:') || (ENABLE_SSL 'false' && substr(HTTP_SERVER, 0, 6) == 'https:')) ?
TRUE :
FALSE;
// 関数追加
function is_before_iOS12() {
// iOS12より前かどうか
if (preg_match('@iPhone; CPU iPhone OS (1[0-2]|[0-9][^0-9])@', $_SERVER['HTTP_USER_AGENT'])) { return true; }
if (preg_match('@iPad; CPU OS (1[0-2]|[0-9][^0-9])@', $_SERVER['HTTP_USER_AGENT'])) { return true; }
if (preg_match('@iPod touch; CPU iPhone OS (1[0-2]|[0-9][^0-9])@', $_SERVER['HTTP_USER_AGENT'])) { return true; }
// MacOS 10.14より前かどうか
if (preg_match('@Macintosh; Intel Mac OS X 10_(1[0-4]|[0-9][^0-9]).*Safari@', $_SERVER['HTTP_USER_AGENT'])) { return true; }
return false;
}
// 下記1行を追記
$path .= is_before_iOS12() ? '' : '; SameSite=None';
if (PHP_VERSION >= '5.2.0') {
session_set_cookie_params(0, $path, (zen_not_null($cookieDomain) ? $domainPrefix . $cookieDomain : ''), $secureFlag,
TRUE);
} else {
session_set_cookie_params(0, $path, (zen_not_null($cookieDomain) ? $domainPrefix . $cookieDomain : ''), $secureFlag);
}
(中略)
zen_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, '/', (zen_not_null($current_domain) ? $current_domain : ''));
↓
zen_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, '/'
. is_before_iOS12() ? '' : '; SameSite=None', (zen_not_null($current_domain) ? $current_domain : '')
, $secureFlag);