[PHP-users 16623]Re: Webブラウザからの引数?の取り込み

kazz SUEISHI kazu_sueishi @ mbi.nifty.com
2003年 7月 10日 (木) 16:32:37 JST


初めまして。 末石と言います。

> > Redhat 9, Apache 2.0.46, MySQL 4.0.13, PHP 4.3.2を再インストールしました。
> > 以前は、http://hoge.jp/test.php?test=aaaa
> > という形で、次のようなスクリプトで引数が取り込めたと思うのですが
> > うまくいきません。
> > <? print '$test'; ?>
> 
> register_globals=off
> 
> が原因かと・・・。PHP 4.2.0以降からは標準で'off'になっていますので、以前
> は特に意識しなくても <? print '$test'; ?> が使えたと思います。php.iniの
> 記述を
> 
> register_globals=on
> 
> にすれば、同じように使えると思います。
> ただ、PHP 4.2.0以降から仕様が変わったのには意味があるようです。
> 私も詳しくは理解できてはいませんので、明確な事はいえないのですがセキュリ
> ティ上の問題だと思います。この場合は、
> 
> <? echo $HTTP_GET_VARS['test']; ?>
> 
> とすれば、register_globals=offのままでも、取り込めます。もっと書きますと、
> やはりセキュリティ上の問題(だったと思います^^;)で最近では
> 
> <? echo $_GET['test']; ?>
> 
> の方が推奨されているようです。これは、POSTやSESSION、COOKIEでも同じ事だ
> と思います。

自分の環境は、Windows2000  IIS 5.0  PostgreSQL 7.3.2  PHP 4.3.2 
ですので定かではありませんが

php.ini 
 register_globals=off のままでも

<?
    import_request_variables("GP", "rv_");  ←:詳細はマニュアルを参照してください。
を指定すると
グローバルスコープにインポートされる全ての変数名の前に「rv_」が付加され

    print $rv_test;
     or
    print "$rv_test";
?>
の使用が可能です。

ご参考までに!







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