phpPHP開発 虎の巻

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"); 

カテゴリ:ネットの記事