ホームページ  >  記事  >  バックエンド開発  >  PHP header()でCookieを設定する方法

PHP header()でCookieを設定する方法

青灯夜游
青灯夜游オリジナル
2021-02-25 17:48:383671ブラウズ

PHP では、header() 関数を使用して、元の HTTP ヘッダーをクライアントに送信します。Cookie は、「header("Set-Cookie:xxxxxxxxxxxxxxxx",false);」の形式で設定できます。

PHP header()でCookieを設定する方法

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

header() 関数はオリジナルを送信します。ヘッダーをクライアントの HTTP ヘッダーに送信します。

ヘッダー出力 cookie

set cookie 関数を有効にしたい場合は、ヘッダーを通じてブラウザ側を設定することによっても有効になります。したがって、ヘッダーを介して出力することも可能です。そこで、いくつかの同等のヘッダー操作の記述について、比較して学習しましょう:

header("Set-Cookie:cookie_name1_cp=" . urlencode("浏览器关闭失效"));
setcookie("cookie_name1", "浏览器关闭失效");

PHP header()でCookieを設定する方法

プログラミング関連の知識の詳細については、次を参照してください: プログラミング ビデオ ! !

注:

setcookie と php のヘッダーの両方で Cookie を設定できることがわかっています。ただし、ヘッダーを使用する場合は、もう 1 つ注意すべき点があります。それは、ヘッダーと setcookie の間の順序、さらにはヘッダーとヘッダーの間の順序です。

Header("Set-Cookie:") は、このステートメントが呼び出される前に header("Set-Cookie:") と setcookie(setrawcookie) の効果をすべてクリアします。 4 つの Cookie が設定されている以下の例を参照してください。ただし、実際に有効になるのは 1 つだけです。残りの3人は最後の1人に流されてしまったので。

header("Set-Cookie:cookie_name1_cp=" . urlencode("浏览器关闭失效"));
setcookie("cookie_name1", "浏览器关闭失效");
setcookie("cookie_name3", "设置有效域名/https/httponly", time() + 3600*24, "/", $_SERVER['SERVER_NAME'], isset($_SERVER["HTTPS"]),true);
header("Set-Cookie:cookie_name3_cp=" . urlencode("设置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly");

PHP header()でCookieを設定する方法

PHP header()でCookieを設定する方法

解決策:

ヘッダーに 2 番目のパラメーター false を追加します。つまり:

header("Set-Cookie:xxxxxxxxxxxxxxxx",false);

例:

header("Set-Cookie:cookie_name3_cp=" . urlencode("设置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly;");
header("Set-Cookie:cookie_name3_cp2=" . urlencode("设置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly;",FALSE);

この場合、false パラメーターを使用するヘッダーは、元のヘッダーと競合しません。詳細については、ヘッダーの PHP 関数の説明を参照してください。

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

私たちの誤った設定はパラメーター $replace であり、同じタイプの既存のヘッダーを置き換えないことを意味します。 「同じ種類」であることに注意してください。

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

以上がPHP header()でCookieを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。