【发布时间】:2021-11-12 21:00:57
【问题描述】:
我正在尝试在实时网络服务器上设置 cookie。这是我用来设置 cookie 的代码:
$authenticator = hash('sha256', random_bytes(9));
$expiry = time() + (86400 * 1825);
setcookie('setfirst', $authenticator, $expiry, "/");
cookie 在 localhost 和 infinityfree 上完美运行。但是,如果我将我的网站上传到 hostgator,则根本不会设置 cookie。我尝试添加一个 try/catch 以查看它是否返回任何错误,但我没有得到任何东西。
我做错了吗?还是该更换托管服务提供商了?
【问题讨论】:
-
您在本地主机和网络服务器上使用相同的 PHP 版本吗?在 PHP 7.1 中添加了
sha256到hash_algos -
@Adrian Kokot 不,不幸的是,不是这样。身份验证器确实会生成一个密钥并将其上传到我的数据库。
-
您是否打开了 PHP 错误报告? cookie 不起作用的常见情况是文件开头的空白或 BOM,在
<?php之外 -
您还应该检查原始 HTTP 响应以查看它是否包含 cookie 数据,无论浏览器是否使用它。
-
@ChrisHaas 是的,我有错误报告,它没有任何 BOM。我检查了 HTTP 响应,还使用了一个 cookie 管理器来检查我网站上的可用 cookie。奇怪的是,它适用于 Infinityfree,但不适用于 Hostgator。我也使用了完全相同的文件,所以我不明白为什么它不起作用。
标签: php cookies session-cookies