【发布时间】:2011-09-08 10:07:59
【问题描述】:
我不是 PHP 专家,我正在尝试设置一个包含来自 URL 的引荐来源代码的 cookie。例如:www.example.com?promotioncode=google 应该设置一个 cookie 名称促销代码,值 = 和 6 个月到期之后的值。
我可以使用
检索促销代码$_GET['promotioncode']
但我似乎无法将其插入到 cookie 字符串中。我尝试了几种方法:
$id = 'promo';
$value = $_GET['promotioncode'];
$time = time()+60*60*24*180;
setcookie($id, $value, $time);
和
$id = 'promo';
$time = time()+60*60*24*180;
setcookie($id, $_GET['promotioncode'], $time);
但它不起作用。如果我使用单词或数字作为 cookie 值,那么 cookie 设置没有问题。
我错过了什么/做错了什么?
【问题讨论】:
-
你检查了HTTP响应头吗?由于标头已经发送,您设置 cookie 的尝试可能会失败。你检查你的错误日志了吗?
-
这实际上是在 magento 安装上,它的添加方式与 magento 生成的其他 cookie 相同。如果我将值设置为 123 它工作正常,问题是通过参数来自网址。
-
该代码应该可以工作,并且在这里也可以工作。你怎么知道它不起作用?你检查 cookie 还是检查 setcookie() 的返回值?您是否转储了 $_GET 的内容?有什么奇怪的吗?
标签: php url cookies parameter-passing