Php Cookie无法设置
我有一个不会在远程服务器上设置的cookie,works在本地查找。没有错误消息,var_dump获取空值,echo为空Php Cookie无法设置,php,cookies,Php,Cookies,我有一个不会在远程服务器上设置的cookie,works在本地查找。没有错误消息,var_dump获取空值,echo为空 <php setcookie('ymp','14', time()+3600); session_start(); ?> 我可以很好地设置javascript cookie。开始标记是页面的第1行 有什么想法吗 谢谢 加里 编辑 我有一些评论,我张贴在下面,这是一个3文件的过程 第一页是设置cookie,如上所述 第二页我要调试的 <php va
<php
setcookie('ymp','14', time()+3600);
session_start();
?>
我可以很好地设置javascript cookie。开始标记是页面的第1行
有什么想法吗
谢谢
加里
编辑
我有一些评论,我张贴在下面,这是一个3文件的过程
第一页是设置cookie,如上所述
第二页我要调试的
<php var_dump($_COOKIE['ymp']); echo'<br />'.$_COOKIE['ymp'];?>
第三页,这一切都在本地有效
<?php
if($_COOKIE['ymp']!=='14')
{die('Sorry, you have not had your delightful little pastry yet.... try again.');}
我设置了一个js cookie,并更改了代码以反映不同的cookie名称,它工作得很好
我还将时间重置为+86400,因为服务器有两个小时的时差,尽管我认为这不是必需的
谢谢你的帮助
Gary在发出新页面请求之前,您无法读取cookie的值。这是因为cookie数据的值随页面请求一起发送。因此,在设置它并发出新页面请求之前,它无法访问其值
另外,session\u start()
对cookie没有影响。它们是两种不同的东西。(会话通常使用cookies来存储会话ID,但这与此无关)。这很奇怪-我认为这可能与PHP配置有关
查看setcookie
函数的返回值-如果在函数调用之前已经发送了输出,则返回值为。您确实在脚本的开头提到了它,但是可能有其他实体输出数据(可能是服务器上预执行的脚本?)
您的浏览器也可能被设置为不接受来自特定域的cookie-请检查您的配置
请提供任何其他相关代码,并说明如何检查是否设置了cookie。此问题从未解决,我最终将一个新文件写入同一主机上的另一个域,并为cookie指定了不同的名称和值(是否可能是2位数的3字符名称cookie太小?)它的工作正如预期的那样
谢谢大家的帮助。。。太忙了,没时间做CSI的调查
Gary这可能是因为您没有为cookie指定路径和/或域。请尝试以下方法:
<?php
setcookie('ymp','14', time()+3600, '/', 'yourdomain.com')
?>
您是否知道您正在设置的cookie将在设置后3.6秒过期?@brunoveira这不是真的。@brunoveiratime()+3600
是1小时!不是毫秒。是的,我犯了一个错误,太多了recently@Gary,您使用什么代码读取cookie?它显然在本地服务器上工作,因此我认为问题不在于刷新页面。这是一个3文件过程,首先是应该设置cookie的页面。在第二页,为了调试起见,如果有:在第3页,这些都在本地机器上工作,我检查了Chrome和Firefox开发工具中的cookie,以及我创建的用于检查php.ini的phpinfo()文件。我设置了js cookie,它显示在所有3个页面上,而php setcookie()没有。我已将路径、域、重新配置的过期时间添加到36000…您是否尝试从setcookie
输出结果,以查看它是否至少报告成功?