【问题标题】:setcookie PHP doesn't work in a right waysetcookie PHP 无法正常工作
【发布时间】:2023-03-22 16:36:03
【问题描述】:

我有这样的情况:我做setcookie("bla",md5("bla"),time()+36000)。 在此之后,我确实在浏览器中看到了这个 cookie,但是如果我在服务器上写 print_r($_COOKIE) - 将不存在键为“bla”的 cookie。有什么想法吗?

这里是列表:

  setcookie("login_cookie",md5($result['user_password']."solt"),time()+36000);
  setcookie("login_info",$result['user_id'],time()+36000);
  header("Location:{$_SERVER['HTTP_REFERER']}");
  exit();

【问题讨论】:

  • 就在你设置cookie之后,还是在下一个请求上?
  • 我想@deceze 的意思是,如果你设置了 cookie,它在下一个页面加载之前将无法打印 - 而不是当前页面。
  • setcookie 确实以正确的方式工作!

标签: php cookies setcookie


【解决方案1】:

尝试以下操作(将路径参数设置为根):

setcookie("login_cookie",md5($result['user_password']."solt"),time()+36000, '/');
setcookie("login_info",$result['user_id'],time()+36000, '/');

我感觉你要在重定向中转到不同的目录,这就是它没有显示的原因,当然,我可能是错的。

【讨论】:

  • 没问题,顺便说一句,您还应该注意子域(包括 www.),您可能需要将 cookie 域(下一个参数)设置为 .domain.ext,而不是默认值,绝对域。这将把 cookie 带到任何地方!
【解决方案2】:

$_COOKIE 是包含在 HTTP 请求中传递的信息的超级全局变量之一。只有在已经拥有 cookie 的浏览器发出请求时,您才会看到它,不是在直接调用 setcookie() 之后。

此外,在您的代码示例中,您似乎正在尝试使用 + 运算符进行连接:

$result['user_password']+"solt"

PHP 使用. 运算符进行连接。

【讨论】:

  • thnx - 但我知道。即使在几次重新加载后也尝试过。但是浏览器显示它而 $_COOKIE 没有。为什么?
  • 关于“+” - 抱歉,这就像一个错字。当然应该用“.”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 2019-01-13
  • 2021-08-16
  • 2012-10-28
相关资源
最近更新 更多