[PHP-users 16290]Re: sessionについて(php.ini設定)

misono @ o-misono.com misono @ o-misono.com
2003年 6月 30日 (月) 01:50:59 JST


Setoさん

レスを有り難う御座いました。

16286でわたなべさんが書かれていたコードですが・・・

<?php
  session_name("MYSESS");
  session_start();
  $_SESSION["access"] += 1 ;
?>

最初のものと両方試しての結果でした。今も上記のコードでは動作致しません。
最初の X 回目のところに何も表示されません。

また

<?PHP
  session_name("MYSESS");
  session_start();
  if ( !isset($_SESSION["access"]))
  {
    $_SESSION["access"] = 1 ;
  }
  else
  {
    $_SESSION["access"]++ ;
    $access++;
  }
  
?>

でも動作致しません。┓(´_`)┏ 

もちろん下記でも
<?php
  session_name("MYSESS");
  session_start();
  if( $_SESSION["access"] )
  {
    $_SESSION["access"] = 1 ;
  }
  else
  {
    $_SESSION["access"]++ ;
  }
?>

このコードの
  if( $_SESSION["access"] )
  を
    if ( !isset($_SESSION["access"]) )
に書き換えてもうまくいきません・・・

流石にエラーはでなくなったのですが、どうも今一使い方がわからなくて・・・。
σ(^_^;)

一応私もVBの知識はあるのでわからないなり全くわからないということはないと思うの
ですが、PHPについてはどうも解せない(バージョンもあがると仕様が大きく変わってし
まったり php.ini の設定があったり・・・)ところが多々あるのです。
もちろんマニュアルを読んでいるつもりですが、どうもはじめてのセッションという考え
方やWebとしての知識が不足している為かうまくいかないことが多々あるのです。
(情けないですが・・・)変数の取り方などとても合理的にできているように思うのです
が最終的にはやはり型をきっちり決めないと動作しないですし・・・(それなら最初から
型宣言しっかりしたほうが良いような・・・)この問題とは関係のない話ですが、、、
σ(^_^;)

ちょっと愚痴っぽくなってしまって申し訳ありません。もう少し基礎を勉強しないといけ
ないのはわかっているのですが・・・。
ボチボチとやっていこうと思っております。何卒宜しくお願い致します。
m(_ _)m

こちらの環境は、 Windwows XP HomeEdition Version 2002 Service Pack 1
Pentium(R) 4 CPU 1.70GHz 512 MB RAM 

PHP Version 4.3.2

中村
mail: misono @ o-misono.com
http://www.o-misono.com/




:
>  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 mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users


PHP-users メーリングリストの案内