【问题标题】:setcookie() does not work [duplicate]setcookie()不起作用[重复]
【发布时间】:2016-09-20 07:12:35
【问题描述】:

我已经尝试了 2 个小时来在我的页面上设置 cookie,并且在互联网上阅读了很多之后,我仍然无法找出我做错了什么。 这是我的代码:

<?php

$cookie_name = "user";
$cookie_value = "MyUserName";

$days = 86400*30;
$cookie_time = $days+time();

setcookie($cookie_name, $cookie_value, $cookie_time, '/');

if (!isset($_COOKIE[$cookie_name]))
{
   echo "Cookie named '" . $cookie_name . "' is not set!";
}
else
{
echo "Cookie '" . $cookie_name . "' is set <br/>";
echo "Value is: " . $_COOKIE[$cookie_name];

?>

我的 Echo 的结果是“未设置名为 'user' 的 Cookie!”每次! 有人可以帮助我吗? :)

【问题讨论】:

  • setcookie() 设置 cookie 并在出错时返回 false。如果您不验证至少两件事,则不能断言它不起作用:1)返回值 2)HTTP 标头是否显示在响应中
  • 顺便说一句,您当前的验证不正确。正如the manual 所说:“一旦设置了 cookie,就可以在 下一页加载 时使用 $_COOKIE 数组访问它们”。
  • 您可能遇到的另一个问题是您正在测试的域.. 如果是本地主机,您应该遵循:php.net/manual/ro/function.setcookie.php#73107
  • 不,我正在使用 one.com

标签: php cookies


【解决方案1】:

你的代码中有语法错误,你错过了关闭 else 语句

试试这个,然后你的代码将设置 cookie

$cookie_name = "user";
$cookie_value = "MyUserName";

$days = 86400*30;
$cookie_time = $days+time();

setcookie($cookie_name, $cookie_value, $cookie_time, '/');

if (!isset($_COOKIE[$cookie_name]))
{
   echo "Cookie named '" . $cookie_name . "' is not set!";
}
else
{
echo "Cookie '" . $cookie_name . "' is set <br/>";
echo "Value is: " . $_COOKIE[$cookie_name];
}

【讨论】:

  • 我在这里写的时候忘记关闭 else 语句了!这不是问题。
【解决方案2】:

您忘记关闭else 语句:

else
{
echo "Cookie '" . $cookie_name . "' is set <br/>";
echo "Value is: " . $_COOKIE[$cookie_name];

提示:您应该打开Error Reporting,将此代码添加到您的 PHP 文件的顶部,这将有助于您查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

【讨论】:

  • 我在插入错误代码时遇到了这个问题:无法修改标头信息 - 标头已发送。
  • @NickiJey 你能贴出完整的代码吗?
猜你喜欢
  • 2023-03-27
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 2014-01-15
相关资源
最近更新 更多