PHPセッションの利用
カテゴリ:ネット
■1.セッションとは?
セッションとはユーザごとのデータをサーバに保存するための仕組み。
セッション ID とはそのユーザごとの ID を表す。
■2.セッションを開始するには?
全ての文字列の前にセッション開始を行う session_start 関数を呼び出す。
session_start();
■3.セッションの利用
セッションにデータを保存するには $_SESSION 連想配列に保存する。
$_SESSION["test"] = 1;
セッションからデータを読み出すのも同様に $_SESSION 連想配列から読み出す。
$test = $_SESSION["test"];
■4.セッションの有効期間
通常、セッションはブラウザを閉じると削除される。セッションの有効期間を設定するには setcookie 関数
を使う。
setcookie(session_name(),session_id(),time()+60*60*24*3); // 秒単位 3日
※レンタルサーバの場合、php.iniでセッションを保存する場所を指定していないと有効にならない
[Session]
session.save_path = "/virtual/XXX/temp/XXX"
■5.セッションの破棄
セッションを破棄するには、まずセッションのデータである$_SESSION をカラの配列にする。
そして、セッションの有効期間をマイナスに設定し、session_destroy 関数でサーバ領域を削除する。
$_SESSION = array(); // 空の配列にしてデータ削除
setcookie(session_id (), '', time() - 1800); // 有効期間をマイナスにしてブラウザ側削除
session_destroy(); // サーバ側の領域削除
■6.セッションのセキュリティ対策
セッションハイジャックを防ぐため、session_regenerate_id を使って、セッション ID を毎回初期化する方がよい。まとめると、セッション開始時には以下のようになる。
session_start(); // セッション開始
session_regenerate_id(true); // セッション ID 初期化
setcookie(session_name(),session_id(),time()+60*60*24*3); // 有効期間3日
■7.セッションと共によく使われる機能:ページの転送
header("Location: http://localhost/login.php");
カテゴリ:ネットの記事