クッキーとは何ですか?
Cookieは、Webサーバーがクライアントコンピューターに保存する最大サイズが4KBの小さなファイルです。
Cookieが設定されると、その後のすべてのページリクエストはCookieの名前と値を返します。
Cookieは、発行元のドメインからのみ読み取ることができます。 たとえば、ドメインwww.guru99.comを使用して設定されたCookieをドメインから読み取ることはできません キャリア.guru99.com。
インターネット上のほとんどのWebサイトは、広告などの他のドメインの要素を表示します。 これらの要素を提供するドメインは、独自のCookieを設定することもできます。 これらはサードパーティのCookieとして知られています。
ユーザーが作成したCookieは、ユーザーにのみ表示されます。 他のユーザーはその値を見ることができません。
ほとんどのWebブラウザには、Cookie、サードパーティのCookie、またはその両方を無効にするオプションがあります。
この場合、PHPはURLにCookieトークンを渡すことで応答します。
次の図は、Cookieがどのように機能するかを示しています。
ここに、
1)ユーザーがCookieを保存するページを要求する
2)サーバーがユーザーのコンピューターにCookieを設定します
3)ユーザーからの他のページリクエストは、Cookieの名前と値を返します
このチュートリアルでは、次のことを学びます-
クッキーを使用する理由と時期
-
Httpはステートレスプロトコルです。 Cookieを使用すると、ユーザーのコンピューターに保存されている小さなファイルを使用して、アプリケーションの状態を追跡できます。
Cookieが保存されるパスは、ブラウザによって異なります。
Internet Explorerは通常、それらをTemporal InternetFilesフォルダーに保存します。
-
ユーザーエクスペリエンスのパーソナライズ–これは、ユーザーが好みを選択できるようにすることで実現されます。
フォローをリクエストされたページは、Cookieに設定された設定に基づいてパーソナライズされています。
- ユーザーがアクセスしたページの追跡
クッキーの作成
次に、Cookieの作成に使用される基本的な構文を見てみましょう。
<?php setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]); ?>
ここに、
- Php「setcookie」は、Cookieの作成に使用されるPHP関数です。
- 「cookie_name」は、サーバーが$ _COOKIE配列変数から値を取得するときに使用するCookieの名前です。 必須です。
- 「cookie_value」はCookieの値であり、必須です
- 「「[expiry_time]」はオプションです。 1時間などのCookieの有効期限を設定するために使用できます。 時間は、PHPのtime()関数のプラスマイナス0より大きい秒数、つまりtime()+ 3600を使用して1時間設定されます。
- 「「[cookie_path]」はオプションです。 サーバー上のCookieパスを設定するために使用できます。 スラッシュ「/」は、Cookieがドメイン全体で利用可能になることを意味します。 サブディレクトリは、サブドメインへのCookieアクセスを制限します。
- 「「[domain]」はオプションであり、Cookieアクセス階層を定義するために使用できます。 www.cookiedomain.comはドメイン全体を意味しますが www.sub.cookiedomain.com にCookieアクセスを制限します www.sub.cookiedomain.com およびそのサブドメイン。 合計文字数が253文字を超えない限り、サブドメインのサブドメインを持つことが可能であることに注意してください。
- 「「[secure]」はオプションで、デフォルトはfalseです。 これは、Cookieがtrueに設定されている場合はhttps経由で送信されるか、falseに設定されている場合はhttp経由で送信されるかを決定するために使用されます。
- 「「[Httponly]」はオプションです。 trueに設定されている場合、クライアント側のスクリプト言語のみ、つまり JavaScript それらにアクセスできません。
注意: php set cookie関数は、HTMLの開始タグの前に実行する必要があります。
次に、Cookieを使用する例を見てみましょう。
10秒後に有効期限が切れるCookieにユーザー名を保存できる基本的なプログラムを作成します。
以下のコードは、上記の例「cookies.php」の実装を示しています。
<?php setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>
出力:
the cookie has been set for 60 seconds
Cookie値の取得
次のコードを使用して、「cookies_read.php」という名前の別のファイルを作成します。
<?php print_r($_COOKIE); //output the contents of the cookie array variable ?>
出力:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
注:$ _ COOKIEは、PHPに組み込まれたスーパーグローバル変数です。
設定されているすべてのCookieの名前と値が含まれています。
その値の数
$ _COOKIE配列に含めることができるのは、php.iniで設定されているメモリサイズによって異なります。
デフォルト値は1GBです。
アプリケーションをテストします。
PHPファイルをphptusフォルダーに保存したとしましょう。
- ステップ1– Webブラウザーを開き、URLを入力します http://localhost/phptuts/cookies_read.php
注:空の配列のみが表示されています
- ステップ2–URLへのブラウザ http://localhost/phptuts/cookies.php
- ステップ3–最初のタブに戻り、更新ボタンをクリックします
しばらく待ってから、もう一度更新ボタンをクリックしてください。 どのような結果が得られましたか?
クッキーを削除する
- 有効期限が切れる前にCookieを破棄する場合は、有効期限をすでに経過した時間に設定します。
- 次のコードを使用して、cookie_destroy.phpという名前の新しいファイルを作成します
<?php setcookie("user_name", "Guru99", time() - 360,'/'); ?>
- Cookie値の取得については、上記のセクションの手順1〜3を繰り返します。
- URLを開く http://localhost/phptuts/cookie_destroy.php
- URLに切り替えます http://localhost/phptuts/cookies_read.php どのような結果が表示されますか?
セッションとは何ですか?
- セッションは、サーバーに格納されているグローバル変数です。
- 各セッションには、保存された値を取得するために使用される一意のIDが割り当てられます。
- セッションが作成されるたびに、一意のセッションIDを含むCookieがユーザーのコンピューターに保存され、サーバーへの要求ごとに返されます。 クライアントブラウザがCookieをサポートしていない場合、一意のphpセッションIDがURLに表示されます
- セッションには、Cookieと比較して比較的大きなデータを保存する能力があります。
- ブラウザを閉じると、セッション値は自動的に削除されます。 値を永続的に保存する場合は、データベースに保存する必要があります。
- $ _COOKIE配列変数と同様に、セッション変数は$ _SESSION配列変数に格納されます。 Cookieと同様に、セッションはHTMLタグの前に開始する必要があります。
なぜ、いつセッションを使用するのですか?
- ユーザーIDなどの重要な情報を、悪意のあるユーザーが気を緩めることができないサーバーに、より安全に保存する必要があります。
- あるページから別のページに値を渡したいとします。
- CookieをサポートしていないブラウザでCookieに代わるものが必要です。
- URLで渡すよりも効率的で安全な方法でグローバル変数を保存したい
- 4KBを超える容量の情報を一時的に保存する必要があるショッピングカートなどのアプリケーションを開発しています。
セッションの作成
セッションを作成するには、最初にPHP session_start関数を呼び出してから、値を$ _SESSION配列変数に格納する必要があります。
ページがロードされた回数を知りたいとしましょう。セッションを使用してそれを行うことができます。
以下のコードは、セッションから値を作成および取得する方法を示しています
<?php session_start(); //start the PHP_session function if(isset($_SESSION['page_count'])) { $_SESSION['page_count'] += 1; } else { $_SESSION['page_count'] = 1; } echo 'You are visitor number ' . $_SESSION['page_count']; ?>
出力:
You are visitor number 1
セッション変数の破棄
session_destroy()関数は、Phpセッション変数全体を破棄するために使用されます。
セッションの単一アイテムのみを破棄する場合は、unset()関数を使用します。
以下のコードは、両方の方法の使用方法を示しています。
<?php session_destroy(); //destroy entire session ?>
<?php unset($_SESSION['product']); //destroy product session item ?>
Session_destroyは、セッションに関連付けられたCookieを含むすべてのセッションデータを削除します。
設定を解除すると、個々のセッション変数のみが解放されます。
その他のデータはそのまま残ります。
概要
- クッキーは、ユーザーのコンピューターに保存される小さなファイルです
- Cookieは発行ドメインからのみ読み取ることができます
- Cookieには有効期限があります。設定されていない場合、ブラウザを閉じるとCookieの有効期限が切れます。
- セッションは、サーバーに格納されているグローバル変数のようなものです
- 各セッションには、ユーザーの変数を追跡するために使用される一意の識別IDが与えられます。
- HTMLタグがブラウザに送信される前に、Cookieとセッションの両方を開始する必要があります。
Hope this helps!
Source link