PHP では、setcookie() 関数の 3 番目のパラメーターの値を常に現在のシステム時間より大きく設定するだけです。構文は、「setcookie("cookie_name", "cookie_value", time() 99*365* 24*3600);"。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
PHP で Cookie を設定する場合、有効期間は指定されていません。ライフサイクルはブラウザの期間であり、保存されていないとも言えます。ブラウザを閉じて再度開くと消えます。
Cookie の有効期間を長く設定すると (常に現在のシステム時間よりも長くなります)、Cookie の有効期限が切れないようにすることができます。 setcookie() 関数の 3 番目のパラメーター $expire は、Cookie の有効期間を設定するために使用されます。たとえば、次のコード:
setcookie("cookie_name", "cookie_value", time() + 99 * 365 * 24 * 3600);
説明:
setcookie()
関数の構文形式は次のとおりです:
setcookie(string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]])
パラメータ
- $name: Cookie の名前を設定します;
- $value: Cookie の値を設定するために使用されるオプションのパラメーター。 $value の値は、$_COOKIE['$name'] の形式で取得できます;
- $expire: Cookie の有効期限を設定するために使用されるオプションのパラメータ。この時間は次の形式です。 Unix タイムスタンプ。ゼロに設定するか省略した場合、Cookie はセッションの終了時 (つまり、ブラウザが閉じたとき) に期限切れになります;
- $path: Cookie の有効なサーバー パスを設定するために使用されるオプションのパラメータ。 「/」に設定すると、Cookie はドメイン名 $domain 全体に対して有効になります。 「/foo/」に設定すると、Cookie は $domain 内の /foo/ ディレクトリとそのサブディレクトリ (/foo/bar/ など) に対してのみ有効になります。デフォルト値は、Cookie を設定するときのディレクトリです。
- $domain: Cookie の有効なドメイン名/サブドメイン名を設定するために使用されるオプションのパラメータです。これをサブドメイン (「c.biancheng.net」など) に設定すると、このサブドメインとその第 3 レベルのドメイン (php.c.biancheng.net など) に対して Cookie が有効になります。 Cookie をドメイン名全体 (そのすべてのサブドメインを含む) に対して有効にするには、Cookie をドメイン名 (たとえば、「biancheng.net」) に設定するだけです。
- $secure: オプションのパラメーター。設定に使用されます。この Cookie を安全な HTTPS 接続経由でのみクライアントに渡すかどうか。 TRUE に設定すると、Cookie は安全な接続が存在する場合にのみ設定されます。
- $httponly: オプションのパラメータ、TRUE に設定すると、Cookie は HTTP プロトコル経由でのみアクセスできます。スクリプト言語アクセスなどの JavaScript を介してアクセスすることはできません。このパラメータを設定すると、XSS 攻撃のリスクを効果的に軽減できます。
time()
Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの現在時刻を秒数で返します。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPでsetcookie()を使用してCookieを無期限に設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。