sessionを利用しよう
PHP の session管理機能を使おう
session 管理機能を利用すると、ショッピングカートなど、複数のページを閲覧する場合に、ユーザーの同定や変数の受渡しが簡単にできます。
sessionとは
sessionとは、ユーザーが複数のページを閲覧する場合に、ユーザーの同定や、ページ間での変数の受渡しに利用します。 詳細はsessionの仕組みをごらんください。
sessionを使うには
sessionを使うには、関数 session_start を使用します。
<?php session_start(); ?>
この場合、セッション名は PHPSESSID となりますが、関数 session_name を用いると、セッション名を設定することができます。 session_name は session_start よりも前に書いておきましょう。 session_name を引数無しで使うと、セッション名を取得できます。
<?php session_name(SHOPPING); セッション名をSHOPPINGに設定 session_start(); セッション開始 session_name(); セッション名を取得 ?>
セッションIDの取得と設定
セッションを利用するときは、セッションIDと呼ばれる識別IDを利用して、訪問者を特定します。 セッションIDはたいていの場合、数字とアルファベットからなる文字列(32桁)です。
<?php print session_id(); セッションIDを表示 ?>
セッションIDは、通常クッキーに保存されます。 クッキーを使用しないで URL に直接埋め込むこともできますが、この場合ブラウザの履歴等に残ることがあるので、避けたほうが良いでしょう。 なお、設定ファイル php.ini で session.use_trans_sid = 0 に設定している場合は、URL にセッションIDを埋め込んで受け渡すことはできません。
セッション変数の利用
セッション変数は、スーパーグローバル変数として扱われます。 $_SESSION['変数名'] の形で利用します。
<?php $_SESSION['shohin_id'] = 1 ;セッション変数に値を代入 $_SESSION['konyu'] = array(1,3,6); 配列もOK ?>
セッション変数は、別のページでも$_SESSION['変数名']で呼び出しできます。 また、cookie を利用していれば、ユーザーがいったんブラウザを閉じた場合でも、再接続時には復元されます。
セッションを破棄する
セッションはブラウザを閉じるだけでは終了しません。 セッションを終了する場合は、session_destroy 関数を用いて、明示的に終了させないといけません。 ショッピングカートで購入完了したときや、会員ページからログアウトしたときなど、一連のプロセスが終わったときには、セッションも終了させましょう。
<?php $_SESSION = array() ; すべてのセッション変数を初期化 session_destroy() ; セッションを破棄 ?>
なお、session_destroy はセッションの終了を指示するだけで、セッション変数自体はそのまま残ります。 セッション変数は、$_SESSION = array() を用いて初期化します。
Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.