2

私は次のphpコードを持っています:

setcookie('bonjour', 'bonjour', time() + 3600); 
setcookie('aurevoir', 'aurevoir', time() + 3600);

print_r(apache_response_headers());

print_r($_COOKIE);

初めてそれを表示するのは:

Array
(
    [X-Powered-By] => PHP/5.5.0
    [Set-Cookie] => aurevoir=aurevoir; expires=Sat, 31-Aug-2013 10:27:06 GMT; Max-Age=3600
)
Array
(
)

そしてその2番目:

Array
(
    [X-Powered-By] => PHP/5.5.0
    [Set-Cookie] => aurevoir=aurevoir; expires=Sat, 31-Aug-2013 10:26:47 GMT; Max-Age=3600
)
Array
(
    [bonjour] => bonjour
    [aurevoir] => aurevoir
)

問題は、ご覧のとおり、最初の配列の Set-Cookie に 2 番目/最後の Cookie のみが格納されることです。では、headers 配列を使用して、2 つの Cookie が設定されていることを検出するにはどうすればよいでしょうか?

4

1 に答える 1

2

次のように headers_list() 関数を使用します。

<?php 
setcookie('bonjour', 'bonjour', time() + 5); 
setcookie('aurevoir', 'aurevoir', time() + 5);


var_dump(headers_list());

どの出力:

array (size=3)
  0 => string 'X-Powered-By: PHP/5.4.12' (length=24)
  1 => string 'Set-Cookie: bonjour=bonjour; expires=Sat, 31-Aug-2013 09:47:48 GMT' (length=66)
  2 => string 'Set-Cookie: aurevoir=aurevoir; expires=Sat, 31-Aug-2013 09:47:48 GMT' (length=68)

あるいは、 setcookie 関数の周りにラッパーを作成し、設定されているすべての Cookie に関するレコードを保存することもできますが、以前のソリューションで十分であると思います。

于 2013-08-31T09:48:07.127 に答える