如何在另一个php页面上设置的php页面上显示cookie值

时间:2014-07-10 20:11:45

标签: php cookies

在名为' 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 ( )
好像它甚至不存在?

出了什么问题?感谢

2 个答案:

答案 0 :(得分:1)

www.mywebpage/library/article.phpwww.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'); 
  ?>

对我来说这是有效的