Cookie设置为setcookie,但找不到$ _COOKIE

时间:2011-08-02 13:56:52

标签: php cookies

我试图在this page上设置一个Cookie,如下所示:

<?php
setcookie("fasciaoffer", $name, time()+36000);
?>

我已经确认已设置Cookie。

然后我想在客户查看购物篮并显示消息时检索cookie:

<?php
if (isset($_COOKIE["fasciaoffer"]))
   echo "<b>Special offers available</b> - buy any 3 covers & get your 4th     choice   free! " . $_COOKIE["fasciaoffer"] . "!<br />";
else
   echo "<b>Special offers available</b> - none available on current order<br />";
?>

但是,我的购物篮中显示的消息是找不到cookie的消息。

问题是什么?我的编码是否正确?


PS。检索位所在的文件(购物篮)不在根文件夹中。

2 个答案:

答案 0 :(得分:1)

  

bool setcookie (string $ name [,string $ value [,int $ expire = 0 [,   string $ path [,string $ domain [,bool $ secure = false [,bool   $ httponly = false]]]]]])

     

[..]

     

path

The path on the server in which the cookie will be available on.
     

如果设置为'/',则Cookie将在整个域中可用。   如果设置为'/ foo /',则Cookie只能在 / foo / 中使用   目录和所有子目录,例如域的 / foo / bar / 。该   默认值是正在设置cookie的当前目录   英寸

您告诉我们检索cookie的文件不在根路径中。

如果设置它的文件也不在根路径中,请务必在致电{{1时将$path设置为"/"(或者可能是另一个仍适合您使用的值) }}

答案 1 :(得分:0)

使用Cookie时,我总是度过一段有趣的时光。但这是我的想法:

1)你确定$ name传递了一个值吗?要检查这一点,请在放置cookie后回显$ name。我通常用echo测试我的变量(“name:$ name
”);只是为了确保我的头和PHP在同一页面上。如果您收到空值,则表明您有问题。

2)我通常认为在阅读任何cookie之前进行页面刷新是有益的。虽然你应该设置一个限定符,如if(!isset($ _ COOKIE ['fasciaoffer'])){set cookie code}

我希望有所帮助。