为什么我不能在 php 上设置 cookie?

Why i cant set a cookie on php?

我遇到了 cookie 的问题,我可以解决...

我已经阅读了一些教程,但我仍然无法创建 cookie...

好吧...我正在尝试创建一个引荐来源系统,它会向我的用户提供一个 link 并在末尾添加一个 &id=number。 (这个号码会和他们的账号相关联,所以我可以识别并打赏)。

我试过很多方法,比如:

 setcookie('ref', $c_value, time()+86400, '.mydomain.com', '/');
 setcookie('ref', $c_value, time()+86400, '/', '.mydomain.com');
 setcookie('ref', 'test', time()+86400, '/', '.mydomain.com');
 setcookie('ref', 'test', time()+86400, '/', '.mydomain.com');
 setcookie('ref', 'test', time()+86400, '/', 'www.mydomain.com');

 $time = time()+86400; setcookie('ref', 'test', '$time', '/', 'www.mydomain.com/');

PS: 我已经分别试过了

但是其中 none 似乎有效,我是否必须在 php.ini 上打开某些功能?

我正在尝试将此代码实现为:

 if(!empty($_GET['id'])){
    $c_value = $_GET['id'];     
    setcookie('ref', $c_value, time()+86400, '/', '.mydomain.com');
 }

我也尝试过不使用 $_GET 函数,但无论我做什么,它都不起作用...

PS2:我正在使用 google 分析和 facebook 插件,它们也会创建 cookie,它们会干扰某些事情吗?我也在使用 SESSIONID。

setcookie 通过在响应 body 之前发送 HTTP header 来工作。在 body.[=15 中输出任何内容之前,必须调用所有发送 headers 的函数(例如 setcookiesession_startheader) =]

因此,要么将 setcookie() 函数移到脚本的前面,要么使用输出缓冲函数来缓冲输出,直到调用它之后。