[PHP-users 16062]session_registerについての質問です。

高橋義光 yrs02145 @ rose.ocn.ne.jp
2003年 6月 20日 (金) 11:20:55 JST


MLのみなさん、はじめまして。高橋義光と申します。
私は、全盲の視覚障害者で、パソコンは音だけで操作しています。いろいろご指
導お願いします。また、php初心者用のMLをご存知であれば、合わせてお教え願え
ればと思います。


session_register を使用して、フォームデータの受渡しをしたいと思い、コー
ドを作成しているところです。
以下のコードで、月を例えば、「7」を選択して、確認画面においては、正しく
選択した値が表示されて
います。
元のフォーム入力画面に戻って、最初に入力した値を、表示させたいと思ってい
ます。
var_dumpで確認すると、「2」の結果は、
 string 7
となっています。
しかし、いろいろ試したのですが、どうしても1が選択された状態になってしま
います。
どこの記述を修正すれば、正しい値に、"selected" をつけられるでしょうか。
参考のために、最後に index.phpの全コードを掲載します。
恐れ入りますが、ご指導お願いします。

<SELECT NAME="VALUE_MON1">
<?php
for ( $I = 1; $I < 13; 
  $I++ ) {?>
  <OPTION VALUE=<?php
  echo( $I );
  echo( ( $_SESSION[ 'data' ][2] == "$I" ) ? "selected" : "" );
  ?>><?php
  echo ( $I );
}?>
</SELECT></TD></TR>

*index.php
<?php
require_once( "common.php" );
session_start();
if ( $_REQUEST[ "SUBMIT" ] != "" ) {
  $data = array( $_POST["VALUE_NAME"], $_POST["VALUE_MAIL"], 
    $_POST["VALUE_MON1"], $_POST["VALUE_DAY1"], $_POST["VALUE_SYUPATU1"],
 
    $_POST["VALUE_MOKUTEKI1"], $POST["VALUE_ZASEKI1"] );
  session_register("data");
  header( "Location: http://" . $_SERVER[ "HTTP_HOST" ]
          . dirname( $_SERVER[ "PHP_SELF" ] ) . "/complete.php" );
  exit();
}
?>
<HTML>
<HEAD><TITLE>JR申し込み</TITLE></HEAD>
<BODY>
<H1 ALIGN="CENTER">東北新幹線申し込み</H1>
<BR><BR>
<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>" METHOD="POST">
下記項目に必要事項を入力後、「送信」ボタンをクリックしてください。<BR>
<TABLE WIDTH="100%" BORDER="0">
<TR>
<TD BGCOLOR="#999999">お名前</TD>
<TD BGCOLOR="#CCCCCC">
<?php
print '<input type="TEXT" name="VALUE_NAME" size="20" value="'.
 $_SESSION['data'][0] .'">"';
?>
</TD>
</TR>
<TR>
<TD BGCOLOR="#999999">メールアドレス</TD>
<TD BGCOLOR="#CCCCCC">
<?php
print '<INPUT TYPE="TEXT" NAME="VALUE_MAIL" SIZE="50" VALUE="'. $_SESSIO
N
  ['data'][1] .'">"';
?>
</TD>
</TR>
<TR>
<TD noWrap><TD BGCOLOR="#999999">乗車月</TD>
<TD BGCOLOR="#CCCCCC">
<SELECT NAME="VALUE_MON1">
<?php
for ( $I = 1; $I < 13; 
  $I++ ) {?>
  <OPTION VALUE=<?php
  echo( $I );
  echo( ( $_SESSION[ 'data' ][2] == "$I" ) ? "selected" : "" );
  ?>><?php
  echo ( $I );
}?>
</SELECT></TD></TR>
<TR>
<TD noWrap><TD BGCOLOR="#999999">乗車日</TD>
  <TD BGCOLOR="#CCCCCC">
<SELECT NAME="VALUE_DAY1">
<?php
for ( $I = 1; $I < 32; 
  $I++ ) {?>
  <OPTION VALUE=<?php
  echo( $I );
  echo( ( $_REQUEST[ "VALUE_DAY1" ] == "$I" ) ? "selected" : "" );
  ?>><?php
  echo ( $I );
}?>
</SELECT></TD></TR>
<?php
$StationData = LoadTextFile( "./data/tohoku.txt", "EUC_JP", "SJIS" );
if ( $StationData == false ) {
  echo( "データはありません。" );
} else {
  ?>
<TR>
<TD noWrap><TD BGCOLOR="#999999">乗車駅</TD>
  <TD BGCOLOR="#CCCCCC">
<SELECT NAME="VALUE_SYUPATU1">
<?php
for ( $I = 0; $I < sizeof( $StationData ); $I++ ) {
  $line = $StationData [ $I ];
?>
  <OPTION VALUE=<?php
  echo( $line );
  echo( ( $_SESSION[ 'data' ][4] == "$line" ) ? "selected" : "" );
  ?>><?php
  echo ( $line );
}?>
</SELECT></TD></TR>
<TR>
<TD noWrap><TD BGCOLOR="#999999">降車駅</TD>
  <TD BGCOLOR="#CCCCCC">
<SELECT NAME="VALUE_MOKUTEKI1">
<?php
for ( $I = 0; $I < sizeof( $StationData ); $I++ ) {
  $line = $StationData [ $I ];
?>
  <OPTION VALUE=<?php
  echo( $line );
  echo( ( $_SESSION[ 'data' ][5] == "$line" ) ? "selected" : "" );
  ?>><?php
  echo ( $line );
}?>
</SELECT></TD></TR>
<?php } ?>
<TR>
<TD BGCOLOR="#999999">特急券区分</TD>
<TD BGCOLOR="#CCCCCC">
<INPUT TYPE="RADIO" NAME="VALUE_ZASEKI1" VALUE="グリーン(禁煙席)"
  <?php
  echo( ( $_SESSION[ 'data' ][6] == "グリーン(禁煙席)" ) ?
    "checked" : "" );
  ?>>グリーン(禁煙席)
<INPUT TYPE="RADIO" NAME="VALUE_ZASEKI1" VALUE="グリーン(喫煙席)"
  <?php
  echo( ( $_SESSION[ 'data' ][6] == "グリーン(喫煙席)" ) ?
    "checked" : "" );
  ?>>グリーン(喫煙席)
<INPUT TYPE="RADIO" NAME="VALUE_ZASEKI1" VALUE="普通指定(禁煙席)"
  <?php
  echo( ( $_SESSION[ 'data' ][6] == "普通指定(禁煙席)" ) ?
    "checked" : "" );
  ?>>普通指定(禁煙席)
<INPUT TYPE="RADIO" NAME="VALUE_ZASEKI1" VALUE="普通指定(喫煙席)"
  <?php
  echo( ( $_SESSION[ 'data' ][6] == "普通指定(喫煙席)" ) ?
    "checked" : "" );
  ?>>普通指定(喫煙席)
<INPUT TYPE="RADIO" NAME="VALUE_ZASEKI1" VALUE="自由席"
  <?php
  echo( ( $_SESSION[ 'data' ][6] == "自由席" ) ?
    "checked" : "" );
  ?>>自由席
</TD>
</TR>
<TR>
  <TD COLSPAN="2" ALIGN="CENTER">
    <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE=" 確 認 ">
    <INPUT TYPE="RESET" NAME="CLEAR" VALUE=" ク リ ア ">
  </TD>
</TR>
</TABLE>
</FORM></BODY></HTML>


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