用PHP获取cookie值?

时间:2009-11-22 07:33:35

标签: php jquery

我在jQuery中创建cookie。我可以在Firefox中验证它。但是当我尝试打印cookie或分配到另一个值时,我无法得到它。我也使用会话。我用PHP开始了会话。 我打印或分配cookie值的代码如下所示

echo $_COOKIE['a'];

用于分配值

$b=$_COOKIE['a'];

使用jQuery创建的cookie是

$.cookie("a",$(this).val());

我在哪里弄错了?我怎样才能获得cookie值?

3 个答案:

答案 0 :(得分:3)

要在PHP中设置cookie的值,请使用setcookie函数:

setcookie("a", "foobar");

但是,这样做需要在输出到客户端之前运行代码(并发送HTTP头。所以基本上,你不能做这样的事情:

<div>
<p>Here's my cookie!</p>
<?php
setcookie("foo", "bar");
?>
</div>

在您拥有任何HTML之前,您需要致电setcookie

此外,如果您在客户端上设置cookie值,则需要从该客户端发出请求以获取cookie值。如果您只是在服务器上运行任意代码,则客户端不会重新发送它的cookie。

最后,服务器正在处理的页面和JS所在的页面需要位于同一个域中。如果不是,浏览器就不会发送相应的cookie。

希望这有帮助!

答案 1 :(得分:2)

可以完全不使用jQuery在PHP中设置cookie。

..然而...

您似乎在this way.

中使用了jQuery

可能导致问题的原因有以下几点:

a)$(this).val()可能会返回NULL。

b)您没有在cookie上设置路径和到期日。如果您有子目录,通常最好设置一个主cookie ,即根路径'/'

要使用PHP读取您的Cookie,请尝试此操作...

  $cookies = explode(';', $_SERVER['HTTP_COOKIE']);

...并在数组中搜索您的"a" Cookie。

有关使用完全PHP设置和阅读Cookie的更多文档,请查看here.

在将任何其他代码回显到页面之前,您必须调用此函数。 (在标题之前)

答案 2 :(得分:1)

对我来说很好看。要调试此问题,请尝试:

var_dump($_COOKIE);

还有:

List Cookies in Javascript