用PHP读取cookie

时间:2011-07-11 10:24:46

标签: php javascript jquery cookies

我正在尝试读取一个我专门用javascript,jQuery Cookie插件设置的cookie,之后我用PHP读取它将其写入数据库。

由于某种原因,cookie是在页面加载时创建的,但在页面刷新之前不会“存在”。这意味着我将空白字段输入数据库表。

我能想到的唯一方法是将AJAX输出到创建cookie的脚本。或者ajax到一个脚本,它在json中将数据返回给我。

用例是我正在为内部项目创建一个简单的分析类,我想在数据库中写入用户分辨率,颜色深度以及我正在使用的所有爵士乐{{1等等。

2 个答案:

答案 0 :(得分:5)

当客户端执行请求时,Cookie数据被发送到服务器(并转发给PHP解释器) 。因此,在从服务器请求页面之后,客户端上的JavaScript设置的cookie将不会被传输,直到下一次请求到同一服务器。

What you have

您需要做的是执行某种请求(可以通过AJAX完成),其中PHP脚本处理传入的cookie信息并将其存储在数据库中。

What you need

答案 1 :(得分:0)

@jensgram是对的。这两种情况可能发生:

  1. 用户请求您的页面以及(s)他没有cookie。您通过PHP呈现响应,但您无法在服务器上看到cookie。响应被传递到浏览器和DOMReady(或类似事件)您设置cookie。用户发送另一个请求(通过与您的页面交互)。这里有服务器上的cookie。
  2. 用户已拥有Cookie(返回您的网站)并发送请求。您通过PHP呈现响应,但这次,cookie在第一次拍摄时可用。其余的都一样。
  3. 两个建议:

    1. 要防止在数据库中插入空(或空)值,请首先检查cookie是否存在。如果没有,只需尝试设置它。
    2. 为了实施Google Analytics,存在预定义模式。例如,您可以在每个页面上包含脚本,而不是设置cookie,在加载每个页面时,您可以获得所需的信息,并向Analytics Collector PHP文件发送异步ajax请求。不需要cookie :)