我试图在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。检索位所在的文件(购物篮)不在根文件夹中。
答案 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}
我希望有所帮助。