2

我有一个不会在远程服务器上设置的 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.');}

?>

我设置了一个 js cookie,并更改了代码以反映不同的 cookie 名称,它工作正常。

我还将时间重置为 +86400,因为与服务器有两个小时的时差,尽管我认为这并不是真正需要的。

感谢所有的帮助

加里

4

4 回答 4

0

这可能是因为您没有为 cookie 指定路径和/或域。试试这个:

<?php
    setcookie('ymp','14', time()+3600, '/', 'yourdomain.com')
?>
于 2013-05-19T14:21:53.323 回答
0

这个问题从未解决,我最终将一个新文件写入同一主机上的不同域,为 cookie 赋予了不同的名称和值(是否有可能是 3 字符名称 cookie 的 2 位值太小??)它按预期工作。

谢谢大家的帮助……太忙了,没时间对 CSI 调查的方式和原因进行调查。

加里

于 2012-11-18T14:24:28.437 回答
0

在发出新页面请求之前,您无法读取 cookie 的值。这是因为 cookie 数据的值是随页面请求一起发送的。因此,在设置它并发出新的页面请求之前它不能访问它的值。

此外,session_start()对 cookie 没有影响。他们是两个不同的东西。(会话通常使用 cookie 来存储会话 ID,但这无关紧要)。

于 2012-11-18T01:40:23.807 回答
0

这很奇怪——我认为这可能与 PHP 配置有关。

看看setcookie函数的返回值是什么——可能是FALSE在函数调用之前已经发送了输出。您确实在脚本的开头提到了它,但是可能还有其他实体输出数据(可能是服务器上的预执行脚本?)

您的浏览器也可能设置为不接受来自特定域的 cookie - 检查您的配置。

请提供任何其他相关代码并说明您如何检查是否设置了 cookie。

于 2012-11-18T01:47:04.690 回答