[PHP-users 5405] Re: unset($_SESSION['...']) ができない

Seto php-users@php.gr.jp
Thu, 14 Feb 2002 23:53:33 +0900


 Setoです。
私も気になっていろいろテストしてみました。
register_globals=onの環境で$_SESSIONを使用してテストしました。

>梶井です。
cut
>注意
>$_SESSION (またはPHP 4.0.6以前の場合は$HTTP_SESSION_VARS)が使用
>されている場合、セッション変数の登録を削除する際に unset()を使用
>して下さい。 
>
>注意
>$HTTP_SESSION_VARS/$_SESSIONを使用している場合、 session_register(),
>session_is_registered(), session_unregister()を使用して下さい。
>
>この2つの注意は逆のことを言っているように読めてしまうのですが、
>どう理解すればいいのかよくわかりません。
同感

>ところで、register_globalsの設定が悪さをしているなんてことはな
>いでしょうか。もしregister_globalsがonの場合、
>
>$ojbect = $_SESSION["object"];
>
>となっているので、
>
>unset($_SESSION["object"]);
>
>としても、$objectは残っていますので、その辺の問題かも。
>念のために
>
>session_unregister("object");
>もあわせてしてみるとか。
これもやってみましたが効果なしでした。

そこで上のヒントを元に
$object自体も同時に unset するとうまくいきました。
#この動作は仕様なのでしょうかねエ?

***************************************
 Junya Seto
 http://www.cii.gr.jp/~seto/mkWeb.html
***************************************