[PHP-users 7177] Re: import_request_variables() in 4.2.0
HOTTA Michihide
php-users@php.gr.jp
Fri, 26 Apr 2002 22:09:51 +0900
堀田@諫早市です。
# 送信に失敗したようなので再送です。2通逝ったらすみません:)
On Fri, 26 Apr 2002 18:15:42 +0900
Subject [PHP-users 7168] Re: import_request_variables() in 4.2.0
Yasuo Ohgaki <yohgaki@yahoo.co.jp> wrote:
> HOTTA Michihide wrote:
> > 4.2.0 移行用に import_request_variables() を試しています。
> > マニュアルによれば、第2引数には import したい変数の prefix を
> > 指定するようですが、どうも何を指定しても import してくれない
> > ようです。
(snip)
> 単純ミスをされています。
>
> print_r($GLOBALS);
>
> を入れると解ると思います。
ありがとうございます。
単純ミスというか、仕様を勘違いしていました。マニュアルの記述
からは読みきれませんでした…。
サマリとして、動くようになったスクリプトを再掲します。
[PHP-users 7164]では、コマンドラインの引数のところで少々ボケを
かましていました。
<?php
print <<< EOD
<HTML><BODY>
<FORM METHOD="POST" ACTION="${_SERVER['PHP_SELF']}?get_val=1">
<INPUT TYPE="TEXT" NAME="post_val">
</FORM>
EOD;
printf("_GET:<BR>\n");
print_r($_GET);
printf("<BR>\n_POST:<BR>\n");
print_r($_POST);
import_request_variables("gpc", "rvar_");
foreach($GLOBALS as $key => $value) {
if (ereg("^rvar_", $key)) {
$new_val = ereg_replace("^rvar_", "", $key);
$$new_val = $value;
}
}
printf("imported:<BR>\n");
printf("get_val=%s<BR>\n", $get_val);
printf("post_val=%s<BR>\n", $post_val);
print <<< EOD
</BODY></HTML>
EOD;
?>
hotta@star ~$ w3m -dump http://localhost/~hotta/test.php?get_val=1
[ ]
_GET:
Array ( [get_val] => 1 )
_POST:
Array ( ) imported:
get_val=1
post_val=
PS.
マニュアルの記述を、以下のようにしてみてはいかがでしょうか。
…と考えてはみたものの、いまいちいい表現が思い浮かびません。
[現行]
注意 引数prefixはオプションですが、接頭辞を指定しないか空の文字
列を接頭辞として指定すると、通知レベルエラーが発生します。
[改善案]
注意 引数prefixを指定すると、第一引数で指定したカテゴリに属する
各変数名の頭に文字列prefixが接頭辞として付加された変数群が生成
されます。この引数はオプションであり、接頭辞を指定しないか空の
文字列を接頭辞として指定すると、通知レベルエラーが発生します。
--
堀田 倫英 <hotta@net-newbie.com> <http://www.net-newbie.com>