ブックモールPC

ブックレビュー
更新日:2002年7月15日

全レビュー一覧&レビュー検索はこちら >>
書名:PHP4徹底攻略 実戦編
PHP4徹底攻略 実戦編

著者 桑村潤小山哲志廣川類
出版社 ソフトバンククリエイティブ
ISBN 978-4-7973-1519-6
発行日
2002年3月29日
価格 4,104円
(本体3,800円+税)
仕様 単色刷/B5変型判/504頁/CD-ROM 1枚
分類 情報通信(インターネット:サーバ)
今回も私のブックレビューでたびたび登場するPHPのお話です。最近、私の借りているウェブサーバがPHP3からPHP4にバージョンアップされました。特にコードを書き換えることもなくPHP4に移行したのですが、数日前にとんでもない事件があったのです。ウェブにアクセスできるものの、ページの内容が変わらない。自分だけが知っている情報更新用のページも開かない。何もできない。まさにお手上げ状態。よくよく調べてみるとGETで引き渡しているクエリーの内容が反映されていないのです。POSTで投げた変数も同様に生かされていない。これには青くなりましたね。PHPによって動的に作られるページというのは、見た目は数百ページもあるように見えても、実際にはたった一つのファイルだったりするのですから。このトラブルで私のサイトも完全にダウンです。

で、ここで思い出したのが最近のPHPのメーリングリストの様子。最近やけに基本的な質問が多かったのです。その代表的なものが「FORMからPOSTした変数の内容が表示されない」というものでした。GETのクエリーの場合も同様です。まさに私のサイトの症状と同じ。そこでメーリングリストの過去ログを検索しつつ、phpinfo()を表示させて設定の状況を確認。これで原因がわかりました。私の借りているサーバのPHPのバージョンは4.2.1、そして「register_globals」がいつの間にか「off」になっていたのです。これではPOSTやGETで変数がうまく引き渡せないわけです。ラクチンなコードを書いてきたつけが回ってきたのか……。でもラッキーなことに、この事件のあったときに私の手元には通称「青マンモス本」と呼ばれる本書があったのです。さっそく開いてみると次のような記述がありました。「PHP4.1.0では、このオプションはデフォルトでonに設定されていますが、PHPの将来のバージョンではセキュリティ上の観点からデフォルトでoffとなる予定です」と。つまり私の使っているPHP4.2.1ではデフォルトがoffだったのです。

事件発生から約2時間。原因究明とその対策方法がわかったので、さっそくコードの書き換えに入りました。もちろんこの青マンモス本が参考になったことは言うまでもありません。仮のファイルできちんと動作するか検証しつつ、事件発生から約3時間。何の気なしに再度phpinfo()を表示させてみると、あれ、register_globalsがonに戻っている。おいおい、前のページもちゃんと表示できてるぞ。この3時間の私のパニックは何だったの? 夢でも見てたのかしらん。多分私と同じサーバを借りている人から猛烈な勢いで問い合わせがホスティング屋さんにいったんだろうね。それであわてて設定をoffからonに戻したということでしょう。無事元の状態に戻ったところでサポートにメールを投げたら「近い将来セキュリティのためにデフォルトをoffにすることを検討しております」という返事だったので、これから週末に少しずつコードを直していくのが私の課題というわけです。とりあえず、今回は「持っててよかった、青マンモス」でした。やれやれ。


書評者: 関 裕司 <>

全レビュー一覧&レビュー検索はこちら >>

Copyright 2002 Bookmall Japan Corporation All rights reserved.
このWEBサイトに掲載されている記事・写真などの無断転載を禁じます。
このWEBサイトについてのお問い合わせはこちらまで。
株式会社ブックモール ジャパン