クッキーやセッションはこのような所で使われています。
- ショッピングカート機能(カゴにどの商品が○個入っているといった情報)
- ユーザー認証のログインチェック
- 複数のページにまたがる入力フォーム
などが挙げられます。
クッキーの特徴
クッキーは、ユーザーのブラウザ環境に依存した機能の1つと言えます。最近、クッキーがON・OFFといった言葉を耳にする機会が多くなっていると思いますが、当然のことながらOFFにしているユーザーには効果がありません。
また。実用例としては、掲示板等に書きこんだ際に、前に入力した名前やメールアドレスがサイトに再訪問した時に残っているという経験があるという方がいらっしゃると思います。クッキーでは、その有効期限(プログラム側で指定可能)が切れるまで、その情報を保持することができます。
クッキーの情報は、ユーザーのパソコンの中に書き込まれ、そのファイルによって情報管理が行われます。
セッションの特徴
PHPでは、バージョン4.0から実装された機能です。簡単に説明すると、クッキーのサーバー版と言ったところです。サーバー側で一時ファイルを設け、それによってデータの管理を行います。
クッキーやセッションのメリットとデメリット
クッキーとセッションが出来ることは非常に似ていますが、お互いメリット・デメリットがあります。
クッキーは、ブラウザを閉じても残り、期間を置いた後にもデータを残すことが可能です。また、情報をユーザ側に置くため、サーバーに余計な負荷をかけることがありません。逆に、ユーザーに依存することが多く、また改ざんすることも可能なため、情報の信頼性に欠ける部分があります。
セッションは、サーバーサイドで情報を保持するため、クッキーと違いデータの改ざんが困難になります。ユーザー認証によるログインなど顧客情報などを扱うようなサイトにセキュリティ上、適しているものと言えます。
クッキーの記述方法
・setcookie関数
PHPのクッキーはとても簡単で、setcookie()という1つの関数で実現できます。また、発行したユーザーのクッキーには、$_COOKIEという配列から取得することができます。
下のサンプルスクリプトは、フォームに入力されたデータをクッキーに保存し、保存したデータをブラウザ上に表示するというものです。
・ソース
time()+60*60*24*30 という部分で有効期限を指定しています。time()は、現在のUNIXのタイムスタンプ(1970年1月1日 00:00:00 GMTからの通算秒)を返します。
2008/07/09 10:22:59のtime()関数を表示するとこのようになります。単位は(秒)です。
1215566579
これに、60秒×60分×24時間×30日をかけた数字をプラスし、現段階から1ヶ月間有効なクッキーを発行しています。
・セッションの記述方法
とても簡単な例を紹介します。リロードをするとカウントが1つずつ増えていくスクリプトです。まず、session_start()を使ってセッションをスタートさせます。次にページが読みこまれる度に、$_SESSION['count']に値をずつ追加していきます。ブラウザを開いている間は、このカウントが保持されます。
・ソース
|
|
同一ページでは、セッションを使っている実感が沸かない(かもしれない)ので複数ページにまたがるセッション管理も試してみます。
ここでは、ファイルを2つ用意します。2つのファイルのリンクを行ったり来たりしている間も値を保持できるようになります。2ページ目でも、$_SESSION['test']という変数が保持されているのをご覧になれると思います。
ファイル名:session1.php
・ソース
|
|
ファイル名:session2.php
・ソース
|
|
ここで、リンクのURLの後ろにSIDという記述がされています。
セッションがスタートすると同時に、ユーザーにセッションID(一般生活に例えると会員証みたいなもの)が発行というものが付与されます。
本来なら、そのセッションIDの情報がクッキーに保存されますが、もし、クッキー未対応のユーザーの場合は、URLの後ろ(QUERY_STRING)に情報を持たせ、それでセッションIDを保持することになります。ブラウザのクッキーをOFFにして、以下のスクリプトを実行されればご理解頂けると思います。
オススメ!PHPが使える格安レンタルサーバーのご紹介
| PHPが利用可能で値段が月々833円という格安のレンタルサーバーです。SSHでのアクセスも可能な上、MySQLも使えるので、ちょっとしたデータベース系のサイトの構築も可能です。充実したコントロールパネルや、無制限のPOP3アカウントなど、レンタルサーバーとして基本的な機能も揃っています。 |
 |
| 本格的なWebサイトの運用を考えている方や法人の方には、専用サーバーがお勧めです。専用サーバーとは、1台のサーバーを1人のユーザーのみで運用が出来るサービスで、100人前後で切り分けて利用するレンタルサーバーに比べて安定した運用が可能になります。ページビューが多いサイトや、プログラムを使った高負荷なサイトに最適です。
(2003/06現在) |
|
オススメ!分かりやすいPHP関連書籍を最短24時間でお届け!

|