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

たかはしまさとし mattoshi @ jade.plala.or.jp
2003年 7月 10日 (木) 13:30:57 JST


どうも、私も昨日新規登録したばかりの、高橋です。
このMLは、1年前から(PHP+MySQLを始た頃から)お世話になっています。
登録こそはしませんでしたが、PHP メーリングリスト全文検索を駆け込み寺の様
に利用させていただき、やっと最近、社内の業務用データーベースを構築できる
ようになりました。(私事でスミマセン)

> Redhat 9, Apache 2.0.46, MySQL 4.0.13, PHP 4.3.2を再インストールしました。
> 以前は、http://hoge.jp/test.php?test=aaaa
> という形で、次のようなスクリプトで引数が取り込めたと思うのですが
> うまくいきません。
> <? print '$test'; ?>

私はWindowsXPなので、外しているのかもしれませんが、同じ事を悩んだことが
あります。初めて手にしたPHPの書籍が、知人からの頂き物で古かったモノで、
たぶん同じ問題にハマってしまったのだと思われます。
三村さんと同じ意見ですが、

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でも同じ事だ
と思います。
長々と書いてしまいました。初投稿なので、なかなかうまく書けませんでしたが、
はずしていたらごめんなさい。

-- 
星野電気株式会社<http://www.hoshino-dk.co.jp/>
高橋<mattoshi @ e-kanji.jp>






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