33

したがって、現在の Web ページには実際にはエラーはありませんが、HTTP 500 エラー ページの代わりに、エラーがポップアップしたときにエラーを確認できるようにしたいと考えています。私は少しグーグルで検索し、これらの2行を追加するとすべてが修正されると考えました.

ini_set('display_errors', 'On');
error_reporting(E_ALL);

注: 学校のアカウントのサーバーを使用しているため、php.ini ファイルにアクセスできません。

そこで、ページの上部に次のようなバグ ($buggy の後にセミコロンがない) を導入しました。

<?php 
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$buggy

$x = 4 + 2;
...

ただし、サーバーエラーが発生するだけです:

「 http://mywebpage.com/の取得中に Web サイトでエラーが発生しました。メンテナンスのために停止しているか、正しく構成されていない可能性があります。」

何か案は?

編集:

コードを再構成しました:

<?php 
include_once 'database/errorSettings.php';
?>
<?php 

$buggy // whoops
$x = 4 + 2;
...

errorSettings.php は次のとおりです。

<?php
    ini_set('display_errors', 'On');
    error_reporting(E_ALL);
?>

しかし、それでも機能しません...再構成の方法が間違っていますか?

4

7 に答える 7

14

あなたが持っているのは解析エラーです。これらは、コードが実行される前にスローされます。PHP ファイル内のコードを実行する前に、PHP ファイル全体を解析する必要があります。エラーレベルを設定しているファイルに解析エラーがある場合、エラーがスローされるまでにそれらは有効になりません。

1 つのファイルでエラー レベルを設定してから、実際のコード (およびエラー) を含む別のファイルを ing するなど、ファイルを小さな部分に分割するincludeか、php.ini または .htaccess ディレクティブを使用して PHP の外部でエラー レベルを設定します。

于 2012-04-10T05:37:43.613 に答える
13

.htaccess ファイルで error_reporting 値を設定する必要があります。解析エラーがあるため、PHP コードで error_reporting() 関数を実行することはありません。

.htaccess ファイルでこれを試してください (使用できると仮定します):

php_flag display_errors 1
php_value error_reporting 30719

30719 は E_ALL に相当すると思いますが、間違っているかもしれません。

更新の編集: http://php.net/manual/en/errorfunc.constants.php

int error_reporting ([ int $level ] )
---
32767   E_ALL (integer)     
All errors and warnings, as supported, except of   level E_STRICT prior to PHP 5.4.0.   32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP   5.2.x, 2047 previously
于 2012-04-10T05:34:38.543 に答える
2

PHPファイルの上に次のコードを書くだけです:

ini_set('display_errors','on');
于 2015-01-03T08:28:59.823 に答える
1

構文エラーは外部サーバーでは簡単にチェックされず、実行時エラーのみがチェックされます。

私がやること?あなたと同じように、私は使います

ini_set('display_errors', 'On');
error_reporting(E_ALL);

ただし、実行する前に、オンラインの PHP 構文チェッカーを使用して PHP ファイルの構文エラーをチェックします。

最高の、私見はPHPコードチェッカーです

すべてのソース コードをコピーし、メイン ボックス内に貼り付けて、Analyzeボタンをクリックします。

これは最も実用的な方法ではありませんが、2 つの手順は補完的であり、問​​題を完全に解決します。

于 2018-02-10T00:07:30.617 に答える
0

PHP5.4 と Plesk 11.5 を使用しているときにこの問題が発生しました。

どういうわけか、Plesk ドメイン構成ページのエラー報告と表示エラー設定が、.htaccess または PHP スクリプトのローカル設定を完全に上書きしていました。これを防ぐ方法が見つからないため、Plesk 設定を使用してエラー レポートのオンとオフを切り替えます。

ローカル サイトがこれらの設定を上書きできないように php.ini に設定している可能性があります。これは、サーバーで使用されているコントロール パネルによって強制されている可能性があります。

于 2014-08-08T14:07:43.120 に答える