CSS Selector Generator | CSS のセレクタ一覧を一発で自動生成!

20

05月2008年

10日で覚えるPHPのキソ 第 9 回 クッキー(COOKIE)

ichikawa 17:58 PM

  • はてなブックマークに登録
  • livedoorクリップに登録
  • Yahoo!ブックマークに登録
  • deliciousに追加

連載「PHPのキソ(超基礎編)」も、残りあと2回になりました。
今回と次回で、サーバーとWebブラウザとの間で継続した通信を行うためのクッキー(COOKIE)やセッションの仕組みについてお話したいと思います。
Webページを表示するために用いられるHTTPは、要求(リクエスト)に対して応答(レスポンス)がされると通信が終了することが基本となっています。
WebサイトのURL(例えば http://c-brains.jp/ など)にアクセスすることは、「このページがみたい」というWebサーバーへの要求です。それに対して、そのページを表示することで通信は切断されます。
継続した通信を行うために必要なのが「セッション」や「クッキー」と言われる機能です。
第 10 回でお話しする予定の「セッション」とは、「クッキー」の仕組みを利用した機能です。
第 9 回は、そのクッキーについてお話したいと思います。

クッキーとは?

  • クッキーとは、Webサーバーからブラウザに送信したデータを保存するための機能

ショッピングサイトなどで、そのサイトへの訪問回数や自分の名前が「○○さん、いらっしゃいませ!」などと表示されたことはないでしょうか?
一般的にその表示には、「クッキー」と呼ばれる機能が使われています。
クッキーとは、Webサーバーから(Web)ブラウザに送信したデータを保存するための機能です。
一度ローカル(自分のパソコン)に保存されたデータは、次からの要求(リクエスト)の際にブラウザが自動的に保存したクッキー情報をWebサーバーへ送信します。
PHPからブラウザにクッキーを書き出す時には、関数setcookieを使います。
一度クッキーをブラウザに保持すると、次からはブラウザからWebサーバーにクッキー情報を送信します。
ブラウザが送信したクッキーは、$_COOKIEというスーパーグローバル関数で取得することができます。

  • 最初のアクセス

080520_ichikawa_01.gif

  1. ブラウザからWebサーバーへの最初の要求(リクエスト)
  2. この時点で保存するデータはありません。

  3. Webサーバーでの処理の実行
  4. Webサーバーでクッキーの発行
  5. Webサーバーからの応答(レスポンス)
  6. ブラウザはWebサーバーから受け取ったデータを保存しておきます。

  • 次のアクセス

080520_ichikawa_02.gif

  1. ブラウザからのWebサーバーへ次回の要求
  2. 受け取ったクッキーをサーバーに送信します。

  3. Webサーバーで処理の実行
  4. Webサーバーでクッキーの参照
  5. サーバー側では、以前アクセスしてきたブラウザかどうかを特定します。

  6. 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」で取得できます。

ブラウザの表示は以下の通りです。

Ci080520152555.jpg

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>

クッキーを受け取りました。
ブラウザの表示は以下の通りです。

Ci080520152606.jpg

次回は、このクッキーを利用したセッションという機能についてお話します。

■ 用語集

■ 参考サイト・文献

バシャログスタッフによるWebサイト制作サービス

トラックバック

このエントリーのトラックバックURL
http://c-brains.jp/cgi-bin/mt/###/1543
###はmt-tb.cgiに変更してください。

コメントを投稿

ページの先頭へ

POPULAR TAGS
  • バシャログスタッフによるWebサイト制作サービス

ARCHIVE

特集

RECENT COMMENTS

ishida on CSS Nite in Ginza, Vol.49「バシャログ LIVE」 で紹介したDreamweaverの正規表現クエリーを公開します
>市川さん コメントありがとうございます。 前提条件の部分
ichikawa on 1.2.3で整えるPHP開発環境【STEP.1】 XAMPPをインストール
いつもバシャログ。をご覧いただきありがとうございます。 >
市川 on CSS Nite in Ginza, Vol.49「バシャログ LIVE」 で紹介したDreamweaverの正規表現クエリーを公開します
どういう前提での使用例なのか、わかりませんが、 タグを明示的
studio-8ch on 1.2.3で整えるPHP開発環境【STEP.1】 XAMPPをインストール
いつも記事を大変興味深く、拝見いたしております。 是非、A
sakai on [使える CSS テクニック] CSSで実現するプルダウンメニュー
>とらのすけさん コメントありがとうございます。 CSS