ホームページ > バックエンド開発 > PHPチュートリアル > PHPのセッション技術Cookieの詳細説明

PHPのセッション技術Cookieの詳細説明

小云云
リリース: 2023-03-22 20:18:02
オリジナル
2086 人が閲覧しました


PHP では、すべてのデータ (変数、定数、グローバル変数) の最大ライフ サイクルは 1 スクリプト サイクルです (つまり、ブラウザがサーバーにリクエストを送信 ---> サーバーがリクエストに応答し、 PHP へのリクエストの処理 ---->PHP が処理してサーバーに戻る ---> サーバーがブラウザに戻る これはスクリプト サイクルです)。ブラウザが再度リクエストすると、以前のデータはすべて無効になります。

ただし、ユーザーのログイン操作などの多くの操作では、ユーザーが正常にログインした後、再度リクエストするときにパスワードを入力せずにバックエンドを直接管理できます。同時に、ユーザーがログインに失敗した場合、またはログインしていない場合、バックグラウンド URL から直接アクセスすることはできません。これには、複数のスクリプト サイクルで使用できるように、ユーザーのログイン ステータスを記録できるデータが必要です。 --------このクロススクリプトサイクルデータストレージメカニズムはセッションテクノロジーと呼ばれます。

COOKIEセッション技術 ---サーバーサイドスクリプトがブラウザ側にデータを保存できるようにする技術

原則: 1. サーバーは、応答時にストレージを管理するための指示をブラウザ側に送信できます。ブラウザ側でCookieデータをリクエストします。

2. ブラウザーがサーバーによって設定された Cookie データを保存している場合、このリクエストを行うと、保存されている Cookie データがサーバーに自動的に送信されます。


使用法:

1. サーバーに Cookie を設定 (追加、削除、変更、確認) します:


setcookie (key, value); key (key)-value (value) によって 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(&#39;name&#39;,&#39;Li&#39;);
ログイン後にコピー
var_dump($_COOKIE[&#39;name&#39;]);
ログイン後にコピー



最初のリクエスト時にはCookieデータはありませんが、ブラウザ側のCookieテーブルには「name」という名前のCookieデータが存在するため、データが保存されていると言えます。ブラウザ側での応答後に保存されます。結果の有効期限は、設定がない場合は「セッション」として表示されます。スクリプトを作成するとき、同じブラウザーリクエストが使用されます:

var_dump($_COOKIE[&#39;name&#39;]);//该文件为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 は有効期限を意味します。

5. セキュリティで保護された送信のみを行うかどうか (https://...暗号化された http プロトコルを示します)

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基本チュートリアルSeventeenセッションテクノロジーCOOKIE、SESSION


PHPセッションテクノロジーのCookieの例

以上がPHPのセッション技術Cookieの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート