【问题标题】:PHP Session Cookie not being sent to serverPHP Session Cookie 未发送到服务器
【发布时间】:2015-09-21 01:32:52
【问题描述】:

我在使用 php 的内置会话功能时遇到问题。 当我启动会话时,客户端会按预期接收会话 cookie。但是 cookie 永远不会被发送回服务器。
所有其他 cookie 都被发送(多次检查)。主机是正确的,路径也是正确的。
php.ini 文件似乎正确。
我也尝试重命名会话 cookie,但没有成功!

我想在每次访问该站点时添加一个会话 cookie。
此外,当我调试它时,我将这一行 error_log(print_r($_COOKIE, true)); 添加为我的代码的第一行。仍然没有会话 cookie。

这是我正在使用的一些代码:

  // This function exists so that I only start the session once.
  function start_session() {
    if(session_id() == "") {
      session_start();
      setcookie(session_name(), session_id(), time() + ini_get("session.cookie_lifetime"));
      // The client gets this cookie!
    }
  }

  start_session();

session.cookie_lifetime 在我的 php.ini 中是 0。这可能是原因吗?

我不知道是什么原因造成的。

【问题讨论】:

  • 显示相关代码
  • 相关代码是什么意思?我使用 session_start (客户端收到 cookie!)。我要做的第一件事是error_log(print_r($_COOKIE, true)); 并且 cookie 不在列表中。
  • 相关代码向我们展示了您的代码,以便我们查看您的代码是否存在问题。如果不仔细研究,我们无法做出好的答案
  • 然后稍等片刻。代码比较分散
  • 您似乎混淆了 cookie 和会话

标签: php session cookies session-cookies


【解决方案1】:

原因是time() + ini_get("session.cookie_lifetime"),而session.cookie_lifetime0。这意味着 cookie 将立即过期。

session.cookie_lifetime 设置为3600 有效。

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 2012-04-08
    • 2021-11-13
    • 2018-08-20
    • 2016-07-01
    • 1970-01-01
    • 2014-08-11
    • 2015-06-30
    • 1970-01-01
    相关资源
    最近更新 更多