【发布时间】:2016-08-25 05:18:59
【问题描述】:
我在使用 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 服务器上构建站点]
【问题讨论】:
-
检查页面是否被缓存。
-
感谢@IagoMelanias,但我使用的是本地 MAMP 服务器并在每次重新加载时刷新缓存,所以不是这样。
-
$databaseArray。向我们展示您的阵列 -
你调试的时候是
print_r($_COOKIE[$cookie])还是print_r($_COOKIE)? -
cookie 设置的路径是什么?请显示您的
setcookie()代码,因为将为当前脚本的路径设置默认路径,而不是/。因此,不同的脚本不会显示相同的 cookie。