0

クライアントのホストでの作業。サイトは DreamHost によってホストされています。index.php ファイルは完全に機能しますが、フロント ページからリンクされているページは空白として表示されます。利用可能なログには何も見つからなかったので、検索すると次のコードが見つかりました。

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

該当するすべてのページのphpコードの上部に配置しましたが、残念ながらエラーは表示されず、ページはまだ完全に空白です。私は開発者というよりもセキュリティ担当者なので、誰かが私を正しい方向に向けることができますか?

編集: サーバーの php.ini ファイルにも display_errors = 1 があります。

4

2 に答える 2

1

コードに@-operatordieまたはexitがあるかどうかを確認してください。はいの場合は、文字列を出力してスクリプトの終了位置を知るか、error_log関数を使用します。

error_log("Oh no, file: ".__FILE__." on line ".__LINE__, 1, "operator@example.com");

コードに次のエラー ハンドラを含めて、もう一度試してください。

function exception_error_handler($errno, $errstr, $errfile, $errline )
{
  if (error_reporting() === 0)
  {
    return;
  }

  throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}

set_error_handler("exception_error_handler");
于 2012-07-22T22:15:33.257 に答える
0

error_log()index.php に呼び出される各ブロック (if/else、for/foreach または while、関数または $this->[*]) の前後に関数を追加してみてください。そして、index.php から呼び出されたクラス ファイル php に進みます。これにより、システムが失敗したポイントを見つけることができます。場合によっては、問題の近くにあるものを (または で)error_log()印刷print_r()するまで、php システムはエラー ログを何も印刷しません。echo

編集

php5-xdebug をインストールしたり、index.php をコマンド ラインで実行したりできます。

 php index.php

PHPエラーシステムとシステムが失敗した場所を発見するのは非常に簡単です。

于 2012-07-22T22:13:03.600 に答える