通过setcookie()
和$_COOKIE
设置Cookie有什么区别吗?
有时,在通过setcookie
设置Cookie时,我无法通过$ _COOKIE ['cookie_name']获取该Cookie的值。但是setcookie
之后的js console.log显示cookie已设置,但如果我尝试通过$ _COOKIE获取cookie的值,我没有获得更新的值。
我很困惑.. !!
答案 0 :(得分:8)
You can't actually "set" a cookie with some code like this:
$_COOKIE['cookie'] = $my_var;
All this does is add a new value to the $_COOKIE
array. No Set-Cookie
HTTP header is sent back to the client (browser) in the response and no cookie will be created on the client.
Use the setcookie()
function to set cookies.
The current accepted answer correctly points out that $_COOKIE
is set/initialized at the start of the PHP process and isn't updated after that. You can update it yourself but don't expect that value to stick on the next request.
答案 1 :(得分:1)
在setcookie功能中,您只能设置cookie名称。
如果您想获得该cookie值,那么您可以通过$_COOKIE['name']
确保在创建cookie时,您还需要在setcookie函数中设置域名。
答案 2 :(得分:0)
在PHP中,我们可以使用函数setcookie()设置cookie。该函数的语法是
setcookie(name,value,expire,path,domain,secure)
例如,setcookie('name',$name,0,'/');
将在根目录'/'中创建一个名为name的cookie,其值为变量$ name。要访问Cookie,我们可以使用$_COOKIE['cookiename']
;
答案 3 :(得分:0)
使用setcookie只能在php中设置cookie:
setcookie("myCookie", $value, time() + 3600);
但是,如果您想获取或使用该cookie,则可以使用$ _COOKIE,例如,如果您想获取一些cookie值,请使用: 回声$ _COOKIE ['cookie_name'];