PHP因为cookie无法正常工作

时间:2014-06-14 06:34:55

标签: php cookies

我在PHP中使用cookie的条件语句遇到了一些麻烦。

我想根据是否设置cookie来更改图像的状态。这是我的代码(在文件MAIN.PHP中):

$cookie = "d_content_vote_".$databaseArray['id']; 
if(!isset($_COOKIE[$cookie])) {
  // display image 1 if cookie is not set
}
else { 
  // display image 2 if cookie is set
}

cookie值(时间戳)在../INCLUDES/RATING.PHP中设置,我对该文件进行ajax调用。为了调试,我在RATING.PHP中做了一个print_r($_COOKIE),它给了我这个:

Array
(
    [d_content_vote_1] => 1402726678
    [d_content_vote_4] => 1402727148
    [PHPSESSID] => effa8778efbe1b3dfb5bb301e359997d
)

但是,当我在MAIN.PHP中执行print_r($ _ COOKIE)时,我没有得到d_content_vote_ * cookie,只有会话信息。

如何传输在rating.php中设置的cookie,以便我可以在main.php中使用它。我以前从未遇到过这个问题。

[补充信息:我现在正在MAMP服务器上构建网站]

2 个答案:

答案 0 :(得分:0)

我意识到我的cookie正在设置,而print_r是在子目录(/ includes)中的文件中完成的,因此无法在根目录中使用。为了使它在根目录中工作,我需要为该函数添加另一个属性:

setcookie($name, $value, $time, "/");

最后一个参数“/”确保cookie可以在根目录中使用。

答案 1 :(得分:0)

当用户进行注销过程时,cookie会被删除吗?如果我们在设置cookie时使用4个参数,我们是否需要在注销过程中采用4个参数?

setcookie($NomeCookieLogOut, "", time()-3600);

OR

setcookie($NomeCookieLogOut, "", time()-3600, "/");