[PHP-users 11217] Re: セッションの受渡しについて

mai php-users@php.gr.jp
Thu, 31 Oct 2002 09:58:53 +0900


mai です。

>  PHP 4.0.3 では、php.ini のひな形として用意されているファイルが
> 二つありますが、それぞれで register_globals の設定値が異なってい
> ます。
>
>   php.ini-dist      -> register_globals = On
>   php.ini-optimized -> register_globals = Off

確認したところ、register_globals = On になっていました。


> >  ここに次の行を追加するとうまくいくかもしれません。
> >  $download = $_POST["download"];

これも、試しましたが、結果は同じでした。
PHP 4.0.3なので
$download = $HTTP_POST_VARS["download"];
にもしてみましたが、やはり結果は同じでした。

そこで、session.phpを以下のように書き換えてためしたところ、

--出力結果--------------
セッションを追加 testid01:1
セッションを追加 testid02:1
セッションを追加 testid03:1
------------------------

の、ように出力され、チェック項目が反映されたので
変数の受渡しはできているようです。たぶん・・・。
(初心者なだけに、自信がないのですが。)

>しかし PHP 4.0.3 は古すぎる(さまざまな問題を抱えている)ので、
>バージョンアップをお薦めします。

バージョンアップは、考えているのですが
レンタルサーバーでバージョンアップに費用がかかるため
時間がかかっています。
(先日、その件で相談させていただきました。その際はありがとうございました。)

バージョンアップはする予定でいますが
現状で、もしお気づきのことがありましたら、ご教授ください。
よろしくお願いします。

---session.phpの変更内容------------------------------------
<?php
// セッションを開始する
session_cache_limiter("public");
session_start();

//終了
if(isset($HTTP_POST_VARS["destroy"])){
 session_destroy();
 echo "終了";
 return;
}

//セッション書き込み部分
for ($i=1;$i<4;$i++){
 $num = $download[$i];
 if($num == null){
  if($HTTP_SESSION_VARS["testid0".$i]==1){
   echo (" セッションを削除 ".$HTTP_SESSION_VARS["testid0".$i]);
   session_unregister("testid0".$i);
   unset($HTTP_SESSION_VARS["testid0".$i]);
  }
 }
 if($num != null){
  if(!isset($HTTP_SESSION_VARS["testid0".$i])){
  $HTTP_SESSION_VARS["testid0".$i]  = 1;
  echo ("セッションを追加
testid0".$i.":".$HTTP_SESSION_VARS["testid0".$i]."<br>\n");
  }
 }
}
session_destroy();
?>
-------------------------------------------------------------

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/