PHP如何看待客户端cookie?

时间:2015-04-01 16:08:57

标签: php cookies

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);  
}
?>

3 个答案:

答案 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网站中检查的并得到此信息一样:

enter image description here

Cookie存储在客户端,但可以通过请求标头在服务器端访问。正如@Quentin在他的回答中所说:“每次浏览器向这些URL中的一个发出HTTP请求时,cookie都包含在Request标头中。”

答案 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。

相关问题