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

mai php-users@php.gr.jp
Wed, 30 Oct 2002 16:56:03 +0900


mai です。

自分のマシン(windows2000, Apache 1.3.24, PHP 4.1.2)では、うまくいくのに
実際に使っているサーバー(Redhat Linux 6.0 , Apache 1.3.12, PHP 4.0.3)で
は、
うまくいかなくて、とても困っています。

やりたいことは、
1.チェックボックスが3つあるfile1.phpを用意し、session.phpに飛ばす。
2.チェックボックスにチェックが入っていたら、session.phpでセッションに書き込
みをし、file2.phpに飛ばす。
3.file2.phpには、file1.phpと同じようにチェックボックスがあり、セッションに書
き込まれている項目のチェックボックスにはあらかじめチェックが入っている
と、いうようなものです。

自分のマシンでは思い通りの動きをするのですが
サーバーに持っていくと、file2.phpに来たときに、チェックが入ってくれません。

どこをどうすればいいのか、検討がつきません。
もしよければ、アドバイスしてください。

スクリプトの内容は以下のとおりです。

----file1.php・file2.php(file2.phpは、最後の <input type="submit"
name="file2" value="送信">のnameが"file1"になってい
る)-----------------------------------------------------

<?php
// セッションを開始する
session_cache_limiter("public");
session_start();
?>

<html>
<head>
<title>セッションテスト</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="session.php">
<?php
if($HTTP_SESSION_VARS["testid01"]==1){
?>
 <input type="checkbox" name="download[1]" value="testid01" checked>
<?php
}else{
?>
 <input type="checkbox" name="download[1]" value="testid01">
<?php
}
?>
 テスト1 <br>
 <br>
 <br>
<?php
if($HTTP_SESSION_VARS["testid02"]==1){
?>
 <input type="checkbox" name="download[2]" value="testid02" checked>
<?php
}else{
?>
 <input type="checkbox" name="download[2]" value="testid02">
<?php
}
?>
 テスト2 <br>
 <br>
 <br>
<?php
if($HTTP_SESSION_VARS["testid03"]==1){
?>
 <input type="checkbox" name="download[3]" value="testid03" checked>
<?php
}else{
?>
 <input type="checkbox" name="download[3]" value="testid03">
<?php
}
?>
 テスト3 <br>
 <br>
 <br>
  <input type="submit" name="file2" value="送信">
  <input type="submit" name="destroy" value="終了">
</form>

</body>
</html>


----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){
   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;
  }
 }
}

if(isset($HTTP_POST_VARS["file1"])){
 header("Location: file1.php");
 return;
}

if(isset($HTTP_POST_VARS["file2"])){
 header("Location: file2.php");
 return;
}

よろしくお願いします。


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