【问题标题】:setcookie in PHP works only on localhostPHP 中的 setcookie 仅适用于本地主机
【发布时间】:2016-05-19 14:37:28
【问题描述】:

我开发了一个使用 cookie 的网络应用程序。如果我使用 php 在 localhost 中设置一个 cookie,它可以工作,但是如果我将项目移动到域 (app.segresta.it) cookie 将停止工作。 我做了几个测试,我发现如果我使用 javascript,cookie 是精确设置的。

setcookie("user", id_user);

本地主机是 Linux Ubuntu 15.10。 域是Linux。

【问题讨论】:

  • 报错? HTTP 响应检查(curl/wget 等)?浏览器 cookie 存储中有什么?
  • 您是否有权访问托管它的机器。如果可以,您可以尝试通过 localhost 将其加载到那里并检查您是否还有 cookie。如果它在那里工作,则可能是防火墙。
  • 为特定域设置了 cookie,如果您更改域/子域,则该 cookie 不再有效,
  • 我在 PHP 中设置了 error_reporting(E_ALL),但是页面中写了任何内容。我也设置了时间 e 域参数,但仍然无法正常工作。

标签: javascript php cookies setcookie


【解决方案1】:

您需要使用以下语法:

setcookie("TestCookie", $value, time()+3600, "example.com");

其中“example.com”是您的域名,或者只是“/”而不是域名。这种方式对我有用。

【讨论】:

  • 这是错误的 - 域不是必需的,应该避免跨站点兼容性。
  • 正如我所写,您可以指定“/”而不是域名,让它为域和子域发送 cookie
  • 不管怎样,如果您需要明确指定域,则可能的问题出在服务器的 php.ini 文件中。
猜你喜欢
  • 1970-01-01
  • 2012-01-28
  • 2018-11-16
  • 2017-02-25
  • 2023-04-05
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多