繁体   English   中英

php 7.3 中 setcookie() 的正确语法是什么?

[英]What is the proper syntax for setcookie() in php 7.3?

PHP 7.3 中 setcookie() 的正确语法是什么? 我通常像这样使用 setcookie():

setcookie("genone", "genoneinfo", "$cookie_expiration_time","/","",1,1);

那行得通,但如何添加 samesite 选项? 我试过这样,但它失败了 php 错误:

setcookie("genone", "genoneinfo", "$cookie_expiration_time","/","",1,1,['samesite'=>'Lax']);

错误:PHP 警告:setcookie() 最多需要 7 个参数,第 73 行给出了 zzz.com/index.php 的 8 个参数,引用: https ://zzz.com/

谢谢,托德

PHP 7.3 引入了setcookie()的替代语法:

添加了支持选项数组的替代签名。 此签名还支持设置 SameSite cookie 属性。

这意味着您只需像在旧版本中一样提供前两个参数,并将其余参数放在一个选项数组中:

setcookie('genone', 'genoneinfo', [
    'expires' => $cookie_expiration_time,
    'path' => '/',
    'domain' => '',
    'secure' => true,
    'httponly' => true,
    'samesite' =>'Lax',
]);

根据文档中的描述,旧版本的参数名称在这里成为数组键:

一个关联数组,它可能包含任何密钥expirespathdomainsecurehttponlysamesite 这些值的含义与对同名参数描述的含义相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM