在名为' article.php'的php页面上我设置了一个cookie并显示它并且一切正常
# www.mywebpage/library/article.php
setcookie("fanclub_articlesvisited", 'test');
echo $_COOKIE['fanclub_articlesvisited']; //displays perfectly after refreshing
在另一个php页面上,名为' new.php'我去了
# www.mywebpage/library/new.php
if (isset($_COOKIE['fanclub_articlesvisited'])) {
echo 'found';
} else {
echo 'not found';
}
但它始终回应“未找到”#39;我认为饼干总是全球化的?
我甚至尝试
print_r($_COOKIE);
并显示
Array ( )
好像它甚至不存在?
出了什么问题?感谢
答案 0 :(得分:1)
www.mywebpage/library/article.php
和www.mywebpage/library/new.php
是您要访问的实际网址吗?我注意到您在设置cookie时没有提供path
参数,因此可能是您尝试从设置cookie的目录之外的目录访问cookie时导致问题。
请改为尝试:
setcookie("fanclub_articlesvisited", 'test', 0, '/');
默认情况下,cookie只会在设置它的目录上方的页面中发送。例如,在此URL设置的cookie:
http://example.com/some_stuff/foo.php
将在此处显示:
http://example.com/some_stuff/bar.php
http://example.com/some_stuff/subdirectory/foo.php
但不在这里:
http://example.com/other_stuff/foo.php
http://example.com/index.php
PHP documentation有更多信息。
答案 1 :(得分:0)
test.php的
<?Php
setcookie("fanclub_articlesvisited", 'test123');
echo $_COOKIE['fanclub_articlesvisited']; //displays perfectly after refreshing
?>
test2.php
<?php
echo htmlentities($_COOKIE['fanclub_articlesvisited'], ENT_QUOTES, 'UTF-8');
?>
对我来说这是有效的