php cookie返回值不变,php – $_COOKIE []似乎在设置后没有反映出变化

我不记得过去使用过Cookies有很多问题,但我一直在玩,并遇到了一些意想不到的结果.

(我正在运行localhost,因此我的域名设置)

$sessionCookie = rand();

setcookie("crav_auto_login_cookie", $sessionCookie, false,"/crav/", false);

echo "Cookie Set
";

echo "Cookie equals: ".$_COOKIE["crav_auto_login_cookie"]."
";

echo "should equal: ". $sessionCookie;

?>

这将产生以下输出:

饼干套装

Cookie等于:457718770

应该等于:318511886

我显然错过了一些东西,但不确定为什么值不同.是因为在页面调用时加载了cookie,而$_COOKIE [“crav_auto_login_cookie”]是从页面打开时调用的实例返回结果而不反映新设置的值?如果是这样的话,为什么呢?

解决方法:

setcookie设置标头以发送回客户端以设置cookie.在下一个请求之前,将无法在$_COOKIE阵列(包含从客户端发送的cookie)中访问新cookie.

以下是用户访问您的网页时事件的简化过程:

>用户的浏览器向您的服务器发送请求.此请求包含标头,包括为您的域为该用户设置的Cookie. PHP根据此请求中的数据填充$_COOKIE(以及$_GET,$_POST等)数组.

>服务器解析用户的请求,并设置响应.此响应以响应标头开头(包括您通过标头设置的任何标头,以及通过setcookie设置的标头).所有标题必须在任何页面输出之前(正如您可能遇到的那样,如果您在开始输出页面内容后尝试发送更多标题,PHP将给您一个错误).

>服务器发送页面内容(实际上,标题和内容是同一传输的一部分).

>服务器和客户端之间的连接关闭(为了讨论的目的,让我们忽略AJAX).

>客户端解析收到的标题和内容,根据需要设置cookie,并呈现页面(实际上,这可能很好地与接收页面串行发生).

因此,当客户端接收并处理set-cookie标头时,客户端已经完成与服务器的通信,这就是为什么在下一个请求之前cookie不会出现在PHP中.

标签:php,cookies

来源: https://codeday.me/bug/20190526/1158172.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值