PHPはphp.iniなどの設定により同じプログラムを書いても挙動がかなり異なるのがイヤだ。
(がゆえに脆弱性のあるコードを書いちゃったりするし。)
配布プログラムやサーバー環境の条件によっては、
「Notice: Undefined index: … 」
というようなエラーが吐き出されて、そのまま続けて正常な動作の結果が表示される場合がある。
こういう場合は、php.iniだったり、.htaccessだったりで、
「error_reporting」の設定が「E_NOTICE」レベルの警告まで発するレベルの設定がされていることが多い。
PHPが利用できるほとんどの環境はそうなっていないようだが、
一部LinuxOSのデフォルトの設定をそのまま使うと、
「E_NOTICE」レベルの警告を発するようになるらしい。
ってことで、上記のようなエラーが吐き出される場合は、
php.iniなり、.htaccessなりで、
「error_reporting」の値を「E_ALL & ~E_NOTICE」に設定しましょう。
「display_errors」をオフにしちゃうとかするともっとラク?
でも、PHPの旨みであるトライ&エラーがやりにくくなるので、
そんなことするくらいなら、PerlやRubyでも使うしね。
って調べたら、各スクリプトからも「error_reporting()」関数で指定できるんだね。
▼詳しくはこの辺を
http://jp.php.net/manual/ja/function.error-reporting.php
ちなみに、「Blogn+」というブログツールでよく起きてるみたいこのエラー。
おそらく、このサイトで配布しているPHPシステムでも発生するはずですから、
設定やスクリプトを修正したうえで利用してください。
【2009年5月28日追記】
.htaccessに書くなら
php_flag display_errors 1 php_value error_reporting 2039
こんな感じ。
【2009年6月2日追記】
まちがってた。
php_flag display_errors 1 php_value error_reporting 6135
こっちが正解だ。
Comment feed