PHP如何查看客户端cookie?
详细说明: 使用PHP& Javascript,我知道PHP在服务器端得到处理。虽然Javascript发生在客户端。
在Javascript中,我可以检查并设置这些客户端cookie。这是有道理的。
但是,使用PHP,如果我将客户端cookie值作为条件语句的一部分进行检查,那么当PHP在服务器端发生时,PHP如何能够看到客户端cookie值?
这是一个PHP条件的示例,它位于php文件中:
<?PHP
if ($_COOKIE["name"] == “Mickey”) {
setcookie(“fulsome”, “Mickey Mouse”, time()+3600);
}
?>
答案 0 :(得分:5)
没有客户端cookie这样的东西。
Cookie是与浏览器中的一组URL相关联的一段数据。每次浏览器向其中一个URL发出HTTP请求时,cookie都会包含在Request标头中。
它们最初设计为通过HTTP Response标头设置。
API已添加到浏览器中,允许通过JavaScript创建和设置它们。这些仍然是常规cookie,并且将包含在对相关URL的每个请求中。
可以将Cookie标记为http_only
,这会导致浏览器阻止从JavaScript访问该Cookie。没有直接的等价物来强加类似的限制。你最接近的就是使用本地存储而不是cookie。
答案 1 :(得分:1)
当PHP处于运行状态时,PHP如何查看客户端的cookie值 发生在服务器端?
原因是对服务器的每个请求还会在标头中带来Cookie ,就像我在chorome网络标签,我的php网站中检查的并得到此信息一样:
Cookie存储在客户端,但可以通过请求标头在服务器端访问。正如@Quentin在他的回答
答案 2 :(得分:0)
(根据评论,我想留下我理解的完整答案。)
HTTP标头包含域/网站的现有Cookie。
当PHP检查cookie时,cookie&amp;它通过在调用php文件时发送的HTTP Header达到了它的价值。
当PHP设置一个cookie时,它将与HTTP Header一起发送回客户端,然后在客户端上设置它。
有关标题中发送内容的完整列表以及回复标题的响应,请参阅: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
您将在标题字段列表中看到Cookie,并在响应字段列表中看到Set-Cookie。