【问题标题】:PHP cookies working on localhost but not on live serverPHP cookie 在本地主机上工作但不在实时服务器上
【发布时间】: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 中添加了 sha256hash_algos
  • @Adrian Kokot 不,不幸的是,不是这样。身份验证器确实会生成一个密钥并将其上传到我的数据库。
  • 您是否打开了 PHP 错误报告? cookie 不起作用的常见情况是文件开头的空白或 BOM,在 <?php 之外
  • 您还应该检查原始 HTTP 响应以查看它是否包含 cookie 数据,无论浏览器是否使用它。
  • @ChrisHaas 是的,我有错误报告,它没有任何 BOM。我检查了 HTTP 响应,还使用了一个 cookie 管理器来检查我网站上的可用 cookie。奇怪的是,它适用于 Infinityfree,但不适用于 Hostgator。我也使用了完全相同的文件,所以我不明白为什么它不起作用。

标签: php cookies session-cookies


【解决方案1】:

嘿,经过几个小时的调试,我终于弄明白了!显然我必须在添加<!DOCTYPE html> 之前设置一个cookie。希望它可以帮助任何遇到 hostgator 问题的人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 2018-09-12
    • 1970-01-01
    • 2016-08-04
    • 2014-01-15
    • 2016-03-05
    相关资源
    最近更新 更多