我在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服务器上构建网站]
答案 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, "/");