PHP では、header() 関数を使用して、元の HTTP ヘッダーをクライアントに送信します。Cookie は、「header("Set-Cookie:xxxxxxxxxxxxxxxx",false);」の形式で設定できます。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
header() 関数はオリジナルを送信します。ヘッダーをクライアントの HTTP ヘッダーに送信します。
ヘッダー出力 cookie
set cookie 関数を有効にしたい場合は、ヘッダーを通じてブラウザ側を設定することによっても有効になります。したがって、ヘッダーを介して出力することも可能です。そこで、いくつかの同等のヘッダー操作の記述について、比較して学習しましょう:
header("Set-Cookie:cookie_name1_cp=" . urlencode("浏览器关闭失效")); setcookie("cookie_name1", "浏览器关闭失效");
プログラミング関連の知識の詳細については、次を参照してください: プログラミング ビデオ ! !
注:
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");
解決策:
ヘッダーに 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 サイトの他の関連記事を参照してください。