Cookie适用于Localhost但不适用于Web主机

时间:2013-06-02 01:23:02

标签: php cookies setcookie

我实际上花了几个小时看这个,但到目前为止还没有发现任何有效的事情(因为我已经清除了基础,至少据我所知)。情况如下:

我写了一个将cookie写入系统的脚本。在摆弄它并学习它是如何工作之后,我让它完美地工作......对于Localhost。我完成了网站的其余部分,很高兴一切都很棒!但后来我将网站移到了网络主机上。该网站仍然很棒,除了一个大问题:从不写cookie。我无法弄清楚为什么,甚至有777的文件(他们现在仍然在“私人地址”),他们仍然不会写cookie。所以这里有一些假代码。希望有人能弄明白我出错的地方,或者我需要检查的地方。

if (isset($_GET['name']))
{ 
$_COOKIE["name"] = $_GET['name'];
$name = $_GET['name'];
$cexp = time()+60*60*24*3650;
setcookie("name", "$name", $cexp, "/");
}

所以人们说要做的一件事就是在路径变量之后添加URL。我也是这样做的(使用“.example.com”格式)并且没有任何影响。

令我困惑的是,即使是现在,这段代码在本地主机上完美运行(我可以看到写入域“localhost”的cookie),但在托管服务器上我根本没有运气。

任何帮助都会非常感激,我也会尽我所能回答任何问题。

提前致谢!


编辑:非常感谢您帮助解决这个问题!我是饼干的新手,所以这是未开发的领域。我假设它是否在我自己的服务器上工作,它也应该在一个实际的主机上工作。我们都知道当我们假设时会发生什么...

所以对于有类似问题的其他人来说,这将是正确的代码:

if (isset($_GET['name']))
{ 
$name = $_GET['name'];
$cexp = time()+60*60*24*3650;
setcookie("name", "$name", $cexp, "/");
$_COOKIE["name"] = $_GET['name'];
}

或者你可以省略最后一行。我有那个作为后备,以便数据仍然可用,没有页面刷新(因为它处理我想留在文本框中的信息)。此外,这些东西必须位于页面顶部。我遇到的一个大问题是使用三部分网站:Header,Main和Footer php文件,每个都在他们自己的div中。在开始div之前必须处理Cookies,所以我现在需要重新组织我的代码。

再次感谢所有人!

1 个答案:

答案 0 :(得分:0)

试试这个:

session_start();

$test = "cheese";
$cexp = time() + (60*60*24*3650);

setcookie("test", $test, $cexp, "yourdomain.extension");

if(isset($_COOKIE["test"])) {
    echo $_COOKIE["test"];
}
else {
    echo "Refresh Page!";
}
相关问题