[PHP-users 6060] Re: PHP3 でPHP4風にコーディングしたい
Naofumi Kondoh
php-users@php.gr.jp
Sun, 10 Mar 2002 22:23:12 +0900
ソフト工房の近藤です。
# 亀レス/亀フォローですいません。
Mickey Okoshi wrote:
>
> 今後のPHP4ではregister_blobals=offが標準推奨とされ、かわりに
> $_POSTやimport_request_variables()などが導入されたわけですが、
> 「まだPHP3だが、PHP4への移行に備えてPHP4推奨の安全なコーディング
> に今から直しておきたい」という場合、どうするのが良いでしょうか?
>
> PHP3でregister_blobals=offの場合、$HTTP_POST_VARS,$HTTP_GET_VARS
> などを使うのだと思いますが、$_REQUESTにあたるものが無いので、
> 「POSTでもGETでもデータを渡せる」ページなど改造が面倒そうです。
.... 略 ....
単純に現有プログラムが PHP4 で動けばいいだけという話と、
security に配慮した安全なコーディングをする場合を切分け
る必要があると思います。
GET/POST/COOKIE をごちゃまぜにしてグローバル変数にして
しまう昔のやり方があぶないのであって、そういう意味では、
$_REQUEST は、安全を考慮すると、昔よりずっとましだけど、
私は、使うつもりはありません。
いろんなやり方があると思いますが、私は、逆のやりかたで、
必要な名前を指定して HTTP_POST/GET_VARS からとってくる
というやり方をしています。
$nam = array('hoge', 'foo', 'bar');
foreach($nam as $v){
if (isset($HTTP_POST_VARS[$v])){
$obj->$v = $HTTP_POST_VARS[$v];
}
}
というような感じ。(実際はもっと複雑)。
一旦1つのクラスの property にしてしまえば、後は、
global $obj ; を各関数に入れるだけだから、手間は
かからないです。
global 入れ忘れても、PHP がちゃんと警告してくれるし。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
《 PostgreSQL+PHPソースコードジェネレーターデモGPL版 》
http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/