我不是PHP专家,我试图设置一个包含来自URL的引用代码的cookie。例如:www.example.com?promotioncode=google
应该设置一个cookie名称promocode,在=
和6个月到期后值。PHP Cookie使用URL中的变量
我可以检索使用
$_GET['promotioncode']
的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可能会失败,原因是标头已被发送。你有没有检查你的错误日志? – Gumbo 2011-06-04 15:40:30
这实际上是在一个magento安装中,并且以与由magento生成的其他cookie相同的方式添加。如果将值设置为123,它可以正常工作,问题是通过url中的参数拉动。 – Andy 2011-06-04 15:43:59
该代码应该可以工作,并且在这里有效。 你怎么知道它不起作用?你检查cookies或者你检查setcookie()的返回值吗?你有没有申请$ _GET的内容?有什么奇怪的吗? – Sylverdrag 2011-06-09 16:11:30