2013年11月29日

PHP : セッションの注意事項 : 絶対に知っておくべきこと

セッションはアプリケーションを作成する上でのとても重要な機能で、今日の PHP の地位は、この機能を使いやすく実装したおかげだと言えるくらいです。確かに、理屈を知らなくても、簡単に使えてしまうのですが、あらためてドキュメントに目を通すと、良く知らない人では混乱するような事しか書いていません。

セッションを使う為のニ原則

1) ソースコードの先頭で、session_start(); を実行する。
2) セッションの内容をクリアしたい場合は、$_SESSION = array(); を実行する。

とりあえずこの二つを知っておけば間違い無いでしょう。クッキーの存在が基本事項ですが、いまどきクッキーを遮断するようなクライアントもいないでしょうから、特別意識する必要は無いと思います。

で、この裏付けページが以下のページにあるサンプルです。

PHP: session_destroy - Manual

ここに、$_SESSION = array() の記述と、もう少し込み入った内容があります。しかし、通常完全にセッションを削除する理由は見当たらないので、そこは気にせず、以下を気にして下さい

 $_SESSION を使っていない古いコードでのみ session_unset() を使用するようにしましょう。 
つまり、session_unset() を使うなと言う事で、さらに、session_unset() のページへ行くと、以下のように注意が書かれています
$_SESSION が使用されている場合、セッション変数の登録を削除するために unset() すなわち、unset ($_SESSION['varname']); を使用してください。 
$_SESSION スーパーグローバルを使用した セッション変数の登録が不可能になってしまうため、 unset($_SESSION) を使って $_SESSION を完全に unset しないでください。 
これは、つまり 個別の変数の削除は、unset ですが、unset($_SESSION) は、絶対にするなというややこしい警告です。ですから、そのような処理が必要な場合は、$_SESSION = array();で全てをクリアする事を推奨します。 unset ($_SESSION['varname']); は、最後の手段です
posted by at 2013-11-29 09:12 | 環境 | このブログの読者になる | 更新情報をチェックする