1

我实际上已经花了几个小时来查找这个,但到目前为止还没有发现任何对我有用的东西(因为我已经清理了基地,至少据我所知)。情况如下:

我编写了一个将 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),但在托管服务器上我一点运气都没有。

任何帮助将不胜感激,我也会尽我所能回答任何问题。

提前致谢!


编辑:非常感谢大家对此的帮助!我是 cookie 的新手,所以这是未开发的领域。我假设如果它在我自己的服务器上运行,它也应该在实际主机上运行。我们都知道当我们假设时会发生什么......

因此,对于其他有类似问题的人,这将是正确的代码:

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

或者,您可以省略最后一行。我把它作为后备,这样数据在没有页面刷新的情况下仍然可用(因为它处理我想留在文本框中的信息)。此外,这些东西必须在页面的顶部。我遇到的一个大问题是使用一个由三部分组成的网站:页眉、主要和页脚 php 文件,每个文件都在自己的 div 中。Cookie 必须在启动 div 之前处理,所以我现在需要重新组织我的代码。

再次感谢大家!

4

1 回答 1

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!";
}
于 2013-06-02T02:08:16.507 回答