Cookie没有设置

时间:2012-11-18 01:37:18

标签: php cookies

我有一个不会在远程服务器上设置的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小时,但我认为并不是真的需要。

感谢所有帮助

加里

4 个答案:

答案 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')
?>