php cookie没有在服务器上设置

时间:2017-01-21 06:19:59

标签: php cookies

我正在尝试设置Cookie。

我已经在localhost中成功设置了它,但是当我在生产站点上尝试它时,它不起作用

localhost代码:

 <?php
 if (!$_COOKIE['locationid']){
    setcookie("locationid",'1',time()+604800,'http://localhost/boot/' );
 }
 echo $_COOKIE['locationid']; 

服务器代码:

 <?php
 if (!$_COOKIE['locationid']) {
     setcookie("locationid", '1', time() + 604800, "www.example.com/demo/");
 }
 echo $_COOKIE['locationid']; 

1 个答案:

答案 0 :(得分:1)

您对setcookie的来电似乎不正确。

应该是这样的:

setcookie("locationid", '1', time() + 604800, "/demo/", "example.com");

第三个参数是路径,您将域和路径一起传递。 第四个参数是域名,您可以将其设置为example.com而不使用www,因此它适用于www和“裸”域。

这些都是可选参数,但请注意,当客户端点击“/ demo /”下的页面而不是您站点的根目录(“/”)时,将这种方式设置为cookie。

另外,我会使用isset检查cookie的存在,如下所示:

if (isset($_COOKIE['locationid'])) {

如果没有设置cookie,您可能会收到尝试访问未定义索引的通知。