[PHP-users 7308] 外部から来る変数の評価
うちやまひろかづ
php-users@php.gr.jp
Tue, 07 May 2002 17:28:13 +0900
うちやまと申します。はじめまして。
ずっとC言語を書いていましたが、ほんの最近めでたくPHP+PostgreSQLデビュー
しました。今後よろしくお願い致します。
さて、早速質問させていただきたいのですが、、
test.phpというファイルをつくり、中に
_______________________________________________
:
:
:
<FORM ACTION="test.php" METHOD="POST">
<INPUT type="submit" name="button" value="button1">
<INPUT type="submit" name="button" value="button2">
</FORM>
<?php
switch( $button ){
case "button1":
printf( "ボタン1<BR>" );
break;
case "button2":
printf( "ボタン2<BR>" );
break;
}
:
:
:
_______________________________________________
と記述したのですが、ボタンを押してもswitchで評価してくれません。
しかたなく、switchのところを
_______________________________________________
if( isset($HTTP_POST_VARS) ){
foreach( $HTTP_POST_VARS as $key => $value ){
if( $value == "button1" )
printf( "ボタン1<BR>" );
else if( $value == "button2" )
printf( "ボタン2<BR>" );
}
}
________________________________________________
に書き換えたら正常動作しました。
このメールを書きながら調べていたら
http://www.1x1.jp/top.php
の中で、
>PHP4.2.0リリース 2002/04/23
> 大きな変更点は、これまでHTTPリクエストなどから自動的に変数にセットされ
>ていた(http://hoge?a=fooなら$aに'foo'がセットされていた)のが、デフォル
>トでセットされなくなりました。これまで直接変数を使っていた頼っていたサイ
>トでのバージョンアップは、気を付けましょう。
との記述をみつけましたが、これのことなんでしょうか。(こちらは4.2.0です)
switch-caseで見た目わかりやすく書きたいのですが、switchでの評価はどうした
らできるのでしょうか。
上記の記事を見ると、「デフォルトでセットされなくなった」とあるので、明示的
に受付るようにする方法があるのでしょうか。
それとも、わざわざ「デフォルトでセットされなくなった」のはもっともな理由が
あるからで、やらないほうがいいのでしょうか。
だとしたら、僕の書換えたやり方は正しいですか?(というかポピュラーですか)
はじめたばかりなので、みなさんにとってはつまらない質問を長々とすみません。
よろしくお願いします。
Mac OS X 10.1.4 Build#5Q125
PHP4.2.0
PostgreSQL7.2
___________________________
うちやま
sdr0x07b6@mac.com