我实际上已经花了几个小时来查找这个,但到目前为止还没有发现任何对我有用的东西(因为我已经清理了基地,至少据我所知)。情况如下:
我编写了一个将 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 之前处理,所以我现在需要重新组织我的代码。
再次感谢大家!