用PHP获取cookie值?
我在jQuery中创建cookie。 我可以在Firefox中validation它。 但是当我尝试打印cookie或分配到另一个值时,我无法得到它。 我也使用会话。 我用PHP开始会话。 我打印或分配cookie值的代码如下所示
echo $_COOKIE['a'];
用于分配值
$b=$_COOKIE['a'];
使用jQuery创建的cookie是
$.cookie("a",$(this).val());
我在哪里弄错了? 我怎样才能获得cookie值?
完全可以在没有jQuery的情况下在PHP中设置cookie。
..然而…
看来你正在以这种方式使用jQuery 。
可能导致问题的原因有以下几点:
a) $(this).val()
可能返回NULL。
b)您没有在cookie上设置路径和到期日。 如果您有子目录,通常最好设置一个主路径为'/'
的主路径。
要使用PHP读取您的cookie,请尝试以下操作…
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
…并在数组中搜索"a"
cookie。
关于使用完全PHP设置和阅读cookie的更多文档,请点击此处。
在将任何其他代码回显到页面之前,必须调用此函数。 (在标题之前)
要在PHP中设置cookie的值,请使用setcookie
函数:
setcookie("a", "foobar");
但是,这样做需要在输出到客户端之前运行代码(并发送HTTP头。所以基本上,你不能这样做:
Here's my cookie!
在拥有任何HTML之前,您需要调用setcookie
。
此外,如果您在客户端上设置cookie值,则需要从该客户端发出请求以获取cookie值。 如果您只是在服务器上运行任意代码,则客户端不会重新发送它的cookie。
最后,服务器正在处理的页面和JS所在的页面需要位于同一个域中。 如果不是,浏览器不会发送相应的cookie。
希望这可以帮助!
看起来很好。 要调试此问题,请尝试:
var_dump($_COOKIE);
并且:
在Javascript中列出Cookie