怎么写&在同一个请求中打印PHP cookie?

时间:2013-08-03 13:03:25

标签: php cookies

我不确定原因,但以下似乎没有按预期工作:

<?php
    setcookie('my_cookie', $_GET['v'], time() + (86400 * 7)); 
    echo $_COOKIE['my_cookie'];
?>

如果您将其放在PHP Web服务器上的文件中,并使用yourdomain.com/index.php?v=value的查询进行调用。该值仅在第二个请求中打印到页面。为什么不在1号?

2 个答案:

答案 0 :(得分:7)

$_COOKIE数组仅代表来自客户端请求的cookie。 setcookie()添加了一个HTTP标头,要求客户端在后续请求期间发送Cookie。

通常,您不应该希望它看起来像请求中的cookie多于实际的cookie。相反,您通常应该在脚本中处理cookie 早期,在其他地方维护状态,并在脚本中设置或重置 late

答案 1 :(得分:1)

setcookie("my_cookie", "value")在对浏览器的响应中创建HTTP标头Set-Cookie: my_cookie=value。浏览器存储此cookie。

下次同一个客户端调用服务器时,它会将请求中的cookie作为标头Cookie: my_cookie=value包含在内,而php将其作为$_COOKIE['my_cookie']提供。

您还可以使用print_r($_COOKIE)print_r($_REQUEST)对原始标题进行检查。