我有一个不会在远程服务器上设置的cookie,可以在本地查找。没有错误消息,var_dump让我为Null,echo为空。
<php
setcookie('ymp','14', time()+3600);
session_start();
?>
我可以设置一个javascript cookie。开头标记是页面的第1行。
任何想法
由于 加里
开启编辑
我在下面发布了一些评论,这是一个3档的过程。
第一页是设置cookie,如上所述。
第二页我有调试
<php var_dump($_COOKIE['ymp']); echo'<br />'.$_COOKIE['ymp'];?>
第3页,这一切都在我本地工作
<?php
if($_COOKIE['ymp']!=='14')
{die('Sorry, you have not had your delightful little pastry yet.... try again.');}
&GT;
我设置了一个js cookie,并更改了代码以反映不同的cookie名称,并且它工作正常。
我还将时间重置为+86400,因为与服务器的时差为2小时,但我认为并不是真的需要。
感谢所有帮助
加里
答案 0 :(得分:0)
在发出新的网页请求之前,您无法读取Cookie的值。这是因为cookie数据的值随页面请求一起发送。因此,在设置并且发出新的页面请求之后,才能访问其值。
此外,session_start()
对Cookie没有影响。他们是两个不同的东西。 (会话通常使用cookie来存储会话ID,但这是无关紧要的。)
答案 1 :(得分:0)
这是相当特殊的 - 我认为这可能与PHP配置有关。
如果在函数调用之前已经发送了输出,请查看setcookie
函数的返回值是什么 - may be FALSE
。你确实提到它是在脚本的开头,但是可能有其他实体输出数据(也许在服务器上预先执行的脚本?)
您的浏览器也可能无法接受来自某个域的Cookie - 请检查您的配置。
请提供任何其他相关代码,并说明您如何确定是否已设置Cookie。
答案 2 :(得分:0)
这个问题从来没有解决过,我最终将一个新文件写入同一主机上的另一个域,给cookie一个不同的名称和值(有可能是一个3位字符名称cookie,其2位数值太小) ??)并且它按预期工作。
谢谢大家的帮助......太忙了,无法对CSI的调查进行调查。
加里
答案 3 :(得分:0)
可能是因为您没有为cookie指定路径和/或域。试试这个:
<?php
setcookie('ymp','14', time()+3600, '/', 'yourdomain.com')
?>