setCookie
我以编程方式复制了我认为的确切行为 。这是我的实现,如果它对其他人有用的话。
function setUserCookie($name, $value, $expires = 0, $path = "", $domain = "", $secure = false, $http_only = false) {
$value = rawurlencode($value);
date_default_timezone_set('UTC');
$date = date("D, d-M-Y H:i:s",$expires) . ' GMT';
$header = "Set-Cookie: {$name}={$value}";
if($expires != 0) {
$header .= "; expires={$date}; Max-Age=".($expires - time());
}
if($path != "") {
$header .= "; path=".$path;
}
if($domain != "") {
$header .= "; domain=".$domain;
}
if($secure) {
$header .= "; secure";
}
if($http_only) {
$header .= "; HttpOnly";
}
header($header, false);
}
与您的函数的区别正是与setCookie
(更多参数,如自定义过期、路径、域、安全和 httpOnly)的区别。特别要注意“header”(false
)的第二个参数,以便可以放置多个具有不同调用函数的cookie。