我在php中设置cookie有问题.我要说我对php不是很有经验,所以也许是一个非常愚蠢的问题.
我有一个ajax评级系统应该检查一个cookie,看看这张照片是否已被投票.
使用ajax检查cookie的页面,添加您投票给它的照片的ID并调用此函数:
setcookie("Name", $cookie, time()+(60*24*365), "/", $_SERVER['HTTP_HOST'], 0);
显示照片的页面也会调用cookie
$cookie = $_COOKIE['Name'];
并检查你是否已经投票.
问题可能在于ajax页面与显示照片的页面位于不同的目录中.
显示照片的页面位于根目录中,投票的页面位于/ajax/vote.php中
在我检查IP之前,投票系统有效,但我知道我需要检查cookie.
它在Firefox中运行没有任何问题,但是当我开始在IE和Safari上进行测试时,似乎他们看不到cookie.
我已经使用IECookieViewer进行了检查,当我投票时,cookie已经创建了,但是当我回到页面时,它看起来像页面找不到cookie.此外,如果我再次投票,则将cookie替换为新的.
对不起英语不好,我希望这个问题是可以理解的
PS忘了指出可能与问题有关的事情.该页面位于iframe中.
检查其他浏览器的cookie设置,如果它们设置为阻止全部或退出时为空.
如果cookie在一个浏览器中工作,而不是在另一个浏览器中工作,则需要确保其他浏览器首先允许您设置cookie.
有时它看起来像你可以创建cookie,但随后每个页面重新加载它将消失或删除.
也有可能因为您在iframe中设置了Cookie,浏览器可能会将其视为第三方Cookie并拒绝它,除非在浏览器首选项中明确规定允许第三方Cookie.
在这种情况下,您需要在尝试设置cookie的页面上使用紧凑的隐私策略(或紧凑的P3P标头).
对于PHP,您可以将其添加为设置cookie的页面的标题:
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');