【问题标题】:How to set multiple cookies by using php header如何使用 php header 设置多个 cookie
【发布时间】:2020-08-29 11:28:42
【问题描述】:

当使用 php header() 函数设置多个 cookie 时,只有最后一个 cookie 有效。之前的所有其他 cookie 设置尝试都将被丢弃。例如:

header("Set-Cookie: cookie1=fox; expires=Mon, 28-Sep-20 10:24:49 GMT; path=/");
header("Set-Cookie: cookie2=fish; expires=Mon, 28-Sep-20 10:24:49 GMT; path=/");

这里只设置了 cookie2。如何使用 header() 方法成功设置多个 cookie?

(header方法也丢弃了之前发送的setcookie函数)

【问题讨论】:

标签: php cookies header setcookie


【解决方案1】:

在此处提供实际答案,而不是隐藏在 cmets 中。

正如 rugolinifr 所说,“将第二个参数设置为 false”,按照 https://www.php.net/manual/fr/function.header.php

【讨论】:

    【解决方案2】:

    使用第二个参数false

    标题

    (PHP 4、PHP 5、PHP 7、PHP 8) header — 发送原始 HTTP 标头

    说明

    header(string $header, bool $replace = true);

    $替换

    可选的replace 参数指示该标头是否应该替换先前的类似标头,或者添加第二个相同类型的标头。默认情况下它将替换,但如果您传入 false 作为第二个参数,您可以强制多个相同类型的标头。例如:

    <?php
        header('WWW-Authenticate: Negotiate');
        header('WWW-Authenticate: NTLM', false);
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 2011-11-10
      • 2013-11-01
      相关资源
      最近更新 更多