PHP解决iframe跨域Cookie无法保存问题

      发布在:后端技术      评论:0 条评论

ini_set设置法

ini_set('session.cookie_samesite','None');
ini_set('session.cookie_secure',true);

php7.3以上版本设置方法:

$arr_cookie_options = array (
'expires' => time()+3600,
'path' => '/',
'domain' => '', // leading dot for compatibility or use subdomain
   'httponly' => true, // or false
   'secure' => true, // or false  重点设置第一项
   'samesite' => 'None' // None || Lax  || Strict 重点设置第二项
);
return setcookie('key', 'value',$arr_cookie_options);

实战thinkphp5.0使用方式 thinkphp\library\think\Cookie.php set方法设置值的时候做php版本判断做设置

if ($config['setcookie']) {

if(version_compare(PHP_VERSION,'7.3.0','<')){
setcookie(
$name, $value, $expire, $config['path'], $config['domain'],
$config['secure'], $config['httponly']
);
}else{
$arr_cookie_options = array (
'expires' => $expire,
'path' => $config['path'],
'domain' => $config['domain'], // leading dot for compatibility or use subdomain
           'secure' => true, // or false
           'httponly' => $config['httponly'], // or false
           'samesite' => 'None' // None || Lax  || Strict
       );
return setcookie($name, $value,$arr_cookie_options);
}
}


相关文章
热门推荐