#author("2017-08-23T06:31:57+09:00;2005-04-17T16:15:01+09:00","","")
#author("2017-08-23T06:33:05+09:00;2005-04-17T16:15:01+09:00","","")
*エラー時に空白ページが出力される場合がある [#vde13d46]

-ページ: BugTrack
-投稿者: [[三浦克介]]
-優先順位: 重要
-状態: 保留
-カテゴリー: 本体バグ
-投稿日: 2004-05-14 (金) 12:59:36
-バージョン: 1.4.5
-バージョン: 1.4.3

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

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

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

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

***2. error_reporting() で E_WARNING を除外している [#e98d4b46]

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

 error_reporting(E_ERROR | E_PARSE);

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

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

----
-システムの整合性を考えれば、is_readable() が好ましいというのは、./wiki/ 配下のファイルなど、PukiWiki が稼動しているなかで、想定されないパーミッションになるということを指摘しているわけですが、何かおかしくはありませんか? -- [[upk]] &new{2004-05-14 (金) 22:40:21};
--PukiWiki設置時や改造時のミスで、ファイルのパーミッション指定を間違えた場合に、白画面になる場合があるという意味です。正常に設置できている場合は、問題ありません。設置者の責任と言ってしまえばそれまでですが、何も手がかりが無いので、デバッグが困難です。 -- [[三浦克介]] &new{2004-05-17 (月) 01:41:15};
-unlink とかって、E_WARNING じゃなかったでしたっけ? @ で消してくれればいいんですけど、PHPを書き出して浅い方は、@ も知りませんし。-- [[upk]] &new{2004-05-14 (金) 22:50:21};


//#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.050 sec.

OSDN