如何创建安全 cookie?我尝试了一切但仍然无法正常工作

How can I create a secure cookie? I tried every thing but still not work

我可以设置一个普通的cookie,比如只设置名称、值和过期时间。但我无法将其设置为安全 cookie 或 httpOnly cookie 或两者。

这是我的代码:

<?php
setcookie("TestCookie", "CookieValue", 0, null, null, true, true);
if(isset($_COOKIE["TestCookie"])){
    echo '$_COOKIE["TestCookie"] = '.$_COOKIE['TestCookie'];
    session_id($_COOKIE["TestCookie"]);
}
else
    echo "Sorry! Cookie TestCookie was not set.";
?>

我在搜索引擎中搜索过。尝试各种方法。例如更改php.ini中的设置等

没有显示错误,但仍然无法正常工作。请回答我的问题。

setcookie 的第六个参数确保只为 HTTPS 请求设置 cookie。将其设置为 false,或确保通过 HTTPS 连接。

另外,请注意 setcookie 不会修改 $_COOKIE,因为 cookie 仅在脚本执行之前加载一次。

如果需要从$_COOKIE变量中获取值,需要手动设置:

setcookie("TestCookie", "CookieValue", 0, null, null, true, true);
$_COOKIE["TestCookie"] = "CookieValue";

您也可以刷新页面,但这可能会为在浏览器中禁用 cookie 的用户创建重定向循环:

<?php
setcookie("TestCookie", "CookieValue", 0, null, null, true, true);
if(isset($_COOKIE["TestCookie"])){
    echo '$_COOKIE["TestCookie"] = '.$_COOKIE['TestCookie'];
    session_id($_COOKIE["TestCookie"]);
}
else{
    header('Refresh: 0');
    exit();
}
?>