PHP では、すべてのデータ (変数、定数、グローバル変数) の最大ライフ サイクルは 1 スクリプト サイクルです (つまり、ブラウザがサーバーにリクエストを送信 ---> サーバーがリクエストに応答し、 PHP へのリクエストの処理 ---->PHP が処理してサーバーに戻る ---> サーバーがブラウザに戻る これはスクリプト サイクルです)。ブラウザが再度リクエストすると、以前のデータはすべて無効になります。
ただし、ユーザーのログイン操作などの多くの操作では、ユーザーが正常にログインした後、再度リクエストするときにパスワードを入力せずにバックエンドを直接管理できます。同時に、ユーザーがログインに失敗した場合、またはログインしていない場合、バックグラウンド URL から直接アクセスすることはできません。これには、複数のスクリプト サイクルで使用できるように、ユーザーのログイン ステータスを記録できるデータが必要です。 --------このクロススクリプトサイクルデータストレージメカニズムはセッションテクノロジーと呼ばれます。
原則: 1. サーバーは、応答時にストレージを管理するための指示をブラウザ側に送信できます。ブラウザ側でCookieデータをリクエストします。
2. ブラウザーがサーバーによって設定された Cookie データを保存している場合、このリクエストを行うと、保存されている Cookie データがサーバーに自動的に送信されます。
C EG: SetCookie ('name', 'li'); Cookie データを追加します
SetCookie ('name', 'layf');
$_COOKIE[ 'key']; サーバー側ではブラウザ側から渡されたCookieデータを取得でき、その値はvalueです。
2. 有効性:
setcookie() 関数では、名前と値の設定である最初の 2 つに加えて、3 番目のパラメーターは有効時間を表します。
Setcookie('name','Li',time()+60); 3 番目のパラメーターはタイムスタンプによって計算されるため、time()+60 は作成後 60 秒で期限切れになることを意味します。
デフォルトの有効期間はセッション サイクルの終了時 (ブラウザが閉じているとき) であり、一時 Cookie とも呼ばれます。
<?php setcookie('name','Li');
var_dump($_COOKIE['name']);
最初のリクエスト時にはCookieデータはありませんが、ブラウザ側のCookieテーブルには「name」という名前のCookieデータが存在するため、データが保存されていると言えます。ブラウザ側での応答後に保存されます。結果の有効期限は、設定がない場合は「セッション」として表示されます。スクリプトを作成するとき、同じブラウザーリクエストが使用されます:
var_dump($_COOKIE['name']);//该文件为cookie_2.php
したがって、ブラウザーによって Cookie データが再度リクエストされます。自動的にサーバーに渡されます。
3. 有効なパス
デフォルトでは、Cookie は現在のパスと子孫のパスで有効です。ブラウザがリクエストを行うと、まず現在のディレクトリで有効な Cookie を検索し、次に上方向に検索して、すべての有効な Cookie をサーバーに送信します。
‐ ' ' ' s ‐ ‐‐ ‐‐ ‐ setcookie() の 4 番目のパラメータで変更でき、通常は '/ に設定されます。 ' サイトが新しいディレクトリ内で有効であることを示します。サイト全体が有効です。
4. 有効なドメイン
デフォルト値は次のとおりです: 現在のドメイン名でのみ有効です。ただし、5 番目のパラメーターを通じて設定できます。
setcookie('name','Li',0,'qq.com'); この設定は、有効なドメインをそのすべてのサブドメインに拡張できることを意味します。 Q q: www.qq.com// ここで、QQ.com はファーストクラスのドメイン名です。 2 www.wx2.qq.com //wx2.qq.com は、第 1 レベルのドメイン名の下にあるサブドメイン名です。先頭に 4 番目のパラメータがない場合は、第 1 レベルのドメイン名でのみ有効となり、サブドメイン名は無効になります。
IEブラウザ上に存在するCookieデータです。
さまざまなアクセスを区別するためにドメインを使用していることがわかります。そのパスは「/」です。これはすべてのサイト ディレクトリが有効であることを意味し、expires は有効期限を意味します。
setcookie() の 6 番目のパラメーターを true に設定することで、セキュリティで保護された送信のみのオプションをオンにすることができます。オンにすると、https://.... がリクエストされた場合にのみ Cookie データがサーバーに送信されます。デフォルトの false は、安全な送信が有効になっていないこと、つまり、Cookie データがすべてのリクエスト メソッドで取得できることを意味します。
6.HTTPONLY
setcookie() の 7 番目のパラメーターを true に設定すると、HTTPONLY オプションをオンにできます。このオプションは、Cookie データが http リクエスト中にのみ取得でき、現在の Cookie データは取得できないことを意味します。 JavaScript などのスクリプトを通じて取得できます。
注: 1. Cookie 値は文字列型のみをサポートします (数値型データは設定前に文字列に変換できます)。
2. Cookie キーは配列添字の形式で記述することができます。ここには常に 2 つの Cookie (保存または要求) がありますが、試用中、php はそれを配列に整理しました。
関連する推奨事項:
セッションテクノロジーCOOKIEとSESSIONの例のまとめ
PHPセッションテクノロジーのCookieの例
以上がPHPのセッション技術Cookieの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。