クッキーの発行と受け取り
クッキーとは、Webサーバーからブラウザに送信したデータを保存するための機能
処理の流れは、
一度ローカル(自分のパソコン)に保存されたデータ → 次の要求(リクエスト) → ブラウザが自動的に保存したクッキー情報をWebサーバーへ送信
PHPからブラウザにクッキーを書き出す時には、関数setcookieを使う。
一度クッキーをブラウザに保持 → ブラウザからWebサーバーにクッキー情報を送信
ブラウザが送信したクッキーは、$_COOKIEというスーパーグローバル関数で取得することができる。
1. ブラウザからWebサーバーへの最初の要求(リクエスト) この時点で保存するデータはありません。 2. Webサーバーでの処理の実行 3. Webサーバーでクッキーの発行 4. Webサーバーからの応答(レスポンス)
ブラウザはWebサーバーから受け取ったデータを保存。
1. ブラウザからのWebサーバーへ次回の要求 受け取ったクッキーをサーバーに送信。 2. Webサーバーで処理の実行 3. Webサーバーでクッキーの参照 サーバー側では、以前アクセスしてきたブラウザかどうかを特定。 4. Webサーバーからの応答
【クッキーの発行】
PHPでクッキーを発行するには、関数setcookieを使う。
この関数は、正常に発行されたらtrueを、失敗したらfalseを返す。
【クッキーの受け取り】
ブラウザからサーバーに送られた情報は、スーパーグローバル変数$_COOKIEで受け取る。
次の2ファイルを作成。
* page1.php <?php // クッキーを発行 setcookie('value', 100); ?> <html> <body> <?php $getcookie = $_COOKIE['value']; print "このページ1のクッキーの値は「".$getcookie."」です<br />"; ?> <a href = "page2.php">ページ2へ</a> </body> </html>
PHPからブラウザにクッキーを書き出すには、setcookie関数を使う。
一度クッキーをブラウザに保持すると、次からはブラウザからWebサーバーにクッキー情報を送信。
Webブラウザで送信したクッキー情報は「$_COOKIE」で取得できる。
ブラウザの表示は以下の通り。
このページ1のクッキーの値は「」です ページ2へ
page1.phpにアクセス→setcookie関数によりクッキーがブラウザに書き出される。
しかし、$_COOKIE['value']に値は入っていないので、「このページ1のクッキーの値は「」です」となる。
この時点では、ブラウザからWebサーバーにクッキー情報を送信する前。
$_COOKIE['value']にはブラウザからWebサーバーに送られた情報が入るので、この時点では値が入っていない。
「ページ2へ」というリンクをクリックして、page2.phpに遷移。
page2.phpにアクセスする事により、Webサーバーにクッキー情報が送信され、$_COOKIE['value']に値が入る。
* page2.php <html> <body> <?php $getcookie = $_COOKIE['value']; print "このページ2のクッキーの値は「".$getcookie."」です<br />"; ?> <a href = "page1.php">ページ1へ戻る</a> </body> </html>
ブラウザの表示は以下の通り。
このページ2のクッキーの値は「100」です ページ1へ戻る