[PHP-users 16288]Re: sessionについて(php.ini設定)
Seto
seto @ cii.gr.jp
2003年 6月 29日 (日) 23:31:36 JST
Setoです。
>いえいえOFFでした。
ということですと最初に提示されたコードは
register_globals = On
で動作するコードなので 動作したというのが逆に納得いきません。
で、まあそれはおいておくとして
[PHP-users 16285][PHP-users 16286]でわたなべさんが提示されたコード
なんですが 後の方[PHP-users 16286]は動作するでしょうが
前の方 つまり下記コードは動作しないでしょう。
(わたなべさんご本人も「見事に間違ったコード」と訂正されてます)
それは
>> <?php
>> session_name("MYSESS");
>> session_start();
>> if( $_SESSION["access"] )
初回時はまだこの変数が存在しないので
この判別が正しく動作しません。よって期待する
$_SESSION["access"] = 1;
も処理されずに
結果2回目以降もこの判別は正しく動作しないのです。
でどうすりゃいいのかというと
if ( !isset($_SESSION["access"]) )
に変更すれば動作するはずです。
もしくは[PHP-users 16286]で提示されているコードに変更するかですね。
# 私ならこちらのコードでも isset等 でのチェックをするようにしますが
この辺のミスに陥らないようにするために
php.ini の error_reporting を E_ALL にすることをお勧めします。
>$_SESSION["access"]でPHP が自動的に変数 $access をとるのでは
register_globals=Off の時には このようなことは行われません。
******************************
Junya Seto
******************************
PHP-users メーリングリストの案内