エラー時に空白ページが出力される場合がある

メッセージ

official:続・質問箱/122 にもあるように、何らかのエラーが生じた際に、 真っ白な画面になる場合があります。私も、最近、そのようなケースに遭遇し ましたので、原因の調査を行いました。原因は二つありました。

1. ファイルの存在を file_exists() 関数でチェックしている

プログラム中の多くの箇所で、ファイルを読込む際に file_exists() 関数で ファイルの存在をチェックした上で、読み込んでいます。ファイルが存在する けれども、読込み不許可の場合(UNIX系OSで、パーミッションが600等の場合)、 file_exists() は TRUE を返しますが、読込みはできず、エラーになります。

is_readable() 関数を使うと、ファイルが存在し、かつ読み込み可能な場合に のみ TRUE を返しますので、is_readable() でチェックした方が良いのではな いでしょうか。

2. error_reporting() で E_WARNING を除外している

require() や require_onece() で指定したファイルを読込めなかった場合、 Fatal Errorで実行が中止されますが、この際のエラーメッセージは E_WARNING として出力されるようです。init.php の冒頭部で、

error_reporting(E_ERROR | E_PARSE);

として、E_WARNING のエラーメッセージ出力を抑止していますので、 require(), require_onece() の読み込み失敗のエラーは出力されません。

E_WARNING を抑止している理由をご存知の方、お教え下さい。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-04-17 (日) 16:15:01
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u8. HTML convert time: 0.206 sec.

OSDN