問題タブ [error-reporting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHPにエラーを報告させることができません
PHPエラーが表示されません。エラーレポートをオンにするために見つけたすべてのトリックを試しましたが、何も機能しません。
display_errorsがオンでerror_loggingがオンですが、エラーのあるページを表示すると、空白のページが表示されます。
/var/log/php.logは存在しません。
ローカルログファイルを設定すると、何も作成されません。
私がテストしているファイルは
他のアイデアはありますか?
php - フレームワークにエラー処理を実装する
フレームワークにエラー処理の実装を開始し、それを構築する方法に関するアドバイスを探しています。
まず、私のフレームワークが現在どのように構築されているかを説明しましょう。
フレームワークの起動をアプリケーションの起動から分離しているため、アプリケーションの起動中に発生したエラーは、専用のクラスによって具体的に処理する必要があります。
私の考えは、私のフレームワークがPHP 5.3のエラーに厳密であるため、 witchというクラスCore_Error_exception
にエラー報告を設定することです。次に、アプリケーションの負荷として、そのクラス内でシャットダウン関数関数を実行して、変更されたすべてのデフォルト値を復元します。 .E_ALL
私がやろうとしているのは、すべてのエラーをキャプチャすることですE_*_NOTICE
。アプリケーションが起動する前に、エラーを監視するため、エラーE_*_ERROR
のキャプチャを停止するようにクラスに指示します。Application_Error_Exception
したがって、例外やトリガーを含むすべてのエラーを追跡し、アプリケーションが初期化される前にフレームワークのデバッグ ページを表示する方法が必要になります。
私が探していた種類のクラスは次のようなものです:
したがって、E_ERROR通知が呼び出された場合、これにより自動的にshut-より多くのエラーが発生するのを防ぐために、その時点でダウンします。
そのコンテキスト セットのエラーに渡すことができる小さな html テンプレート ハンドラーを使用しますE_*_ERROR
。
過去にエラー追跡/レポートを行うのに苦労したので、このクラスを構築する最良の方法は何ですか.
更新: 現在のクラスで
trigger_error('test',XXX); などのエラーが発生した場合。アプリケーションが起動するまで、または E_USER_ERROR がトリガーされるまで、すべてのエラーを追跡できるようにしたいと考えています。
PHP のエラー システムを完全に把握するのに苦労することもあります。
php - error_reporting(1);はどう思いますか。指示は?
error_reporting(1);
指示は何をするのだと思いますか?
configuration - PHP 5.2.14 が (コマンドラインからでも) エラーを表示しないのはなぜですか?
PHP 5.2.10 および PHP 5.2.14 (x86 非スレッドセーフ Win32 ビルド) を Windows 2008 R2 サーバーおよび Windows 7 64 ビットにインストールしています。
何らかの理由で、PHP 5.2.14 はエラー メッセージの表示を拒否します。
で次の設定を行っても、php.ini
5.2.14 を使用するとエラーは報告されません。
php.exe
これは、意図的な構文エラーを使用してコマンド ラインからテスト スクリプトを実行した場合でも発生します。
c:\php>
php test.php
php.ini
を実行すると設定が変更されていることがわかるため、PHP は正しいファイルを使用していますphp.exe -i
。
php.exe
また、PHP 5.2.14 では起動が非常に遅いことにも気付きました。
同じマシンで PHP 5.2.10 を使用して同じ一連のテストを実行すると、問題なくエラー メッセージが報告されます。
両方のphp.ini
ファイルはストック ( に基づくphp.ini-recommended
) ですが、error_reporting
とのdisplay_errors
設定が変更されています。
php - PHPはエラーを表示しません
これが私のコードです:
これを実行してもエラーは発生しません。
これがどうなるかわからない?
python - python-未定義の変数?
Pythonには、通知/警告を出力する未定義の変数/デバッグモードがありますか?
PHPでは、error_reportingを変更して、通知警告をオンにすることができます。
2行目に「未定義の変数foo」をスローします。
Pythonには似たようなものがありますか?
私がやっていたところにバグがありました
それ以外の
そして私はPythonが未定義の変数connectをスローすることを望んでいました...
Pythonでエラー報告レベルなどを上げることができますか?
php - Apache 2.2 (ubuntu) では、.htaccess 経由で PHP エラー報告を設定できませんか?
ubuntu (debian) linux と apache 2.2/php 5.2 を実行しているサーバーに問題があります。
これは主に生産的なサーバーでdisplay_errors
あるため、php.ini でオフになっています。
開発目的で、特定のドメインに対してこれらのエラー報告を有効にしたいと考えています。しかし、私が設定したとき
php_flag display_errors オン
テストドメインの.htaccessファイルでは、それは単に機能しません:(したがって、サーバー上のすべてのWebサイトに影響するphp.iniでdisplay_errorsを設定する必要があります...これを1つのドメインに対してローカルで設定するにはどうすればよいですか?
php - Magento のアクセス許可は正しいですか?
OS X Snow Leopard 10.6.4 で MAMP 1.8.4 を使用して Magento 1.4.1.1 を新規インストールしました。
Magento/ダウンローダー (Magento Connect Manager) を正常にロードできません。ブラウザに空白の白いページが表示されます。Safari の [アクティビティ] ウィンドウに、内部サーバー エラーであると表示されます。これは、アクセス許可が正しくない可能性があることを示しています。ディレクトリ/ファイルに十分な権限があるかどうかをテストするために、magento ディレクトリ全体のすべてのファイル権限を 777 に変更しました。まだ Magento 接続 (magento/downloader/) を読み込めません。
すべてのファイルを 777 に設定するだけで、正しいアクセス許可をテストするのに十分な方法でしょうか? 以前にこの問題に遭遇した人はいますか?
php - E_NOTICE ?== E_DEBUG、より洗練された error_handler で isset() と @ を回避
アプリケーション ロジックに大量のエラーが発生するのを回避し、isset()
必要に応じてデバッグ メッセージ (E_NOTICE) を表示する機能を保持するためのより良い方法はどれですか?
最初の仮定: E_NOTICE はエラーではありません。これは誤称であり、実際には E_DEBUG である必要があります。ただし、これは設定されていない変数 (PHP は依然としてスクリプト言語です) には当てはまりますが、一部のファイル システム関数などもそれらをスローします。したがって、E_NOTICEs をオンにして開発することが望ましいです。
しかし、すべてのデバッグ通知が役立つわけではありません。そのため、アプリケーション ロジック全体で @を導入するのが一般的な (残念ながら) PHP のイディオムです。isset()
確かに、isset/empty には多くの有効な使用例がありますが、全体的には構文ソルトのように見え、実際にデバッグを妨げる可能性があります。
そのため、現在、error_reporting ブックマークレットとダムのオン/オフ スイッチを使用しています。
ただし、それでも、一度有効にすると検索するには通知が多すぎるという問題が残ります. 回避策として、@ エラー抑制演算子を利用できます。isset() とは異なり、カスタム エラー ハンドラは抑制された E_NOTICE を引き続き受け取る可能性があるため、デバッグ オプションを完全に削除するわけではありません。そのため、予想されるデバッグ通知を潜在的な問題から切り離すことが役立つ場合があります。
しかし、それは同様に満足のいくものではありません。したがって、質問です。より洗練された PHP エラー ハンドラを使用している、または知っている人はいますか。私は次のことを想像しています:
- フィルター処理されていないエラー/警告/通知を出力します (CSS 絶対配置で?)
- クライアント側の検査と抑制を可能にするAJAX-whatnot
- だけでなく、予想される「承認された」通知または警告のフィルタリング リストも保存します。
確かに、一部のフレームワークには、そのようなユーザー エラー ハンドラーが既にあるはずです。
- 基本的には注意・告知管理に興味があります。
- 完全な E_NOTICE 抑制は実際には望ましくありません。
- E_NOTICESを募集しています。それらの数が少ないだけです。デフォルトでは、期待されるものではなく、私が気にする可能性のあるものを強調表示します。
- ?order= パラメータなしで実行すると、予想される NOTICE が発生します。当然のことながら、何度も通知する必要はありません。
- ただし、完全なデバッグ モードでは、上記のデバッグ通知の存在 (または、より興味深いことに不在) を通じて、未定義の変数の存在を確認したいと考えています。-> そのためにあると思います。isset を回避すると、言語暗黙の print ステートメントが発生します。
- また、これは通常の PHP フォーム処理セマンティクスが適しているユース ケースに関するものであり、厳密さが必須であるアプリケーション領域ではないことも理解してください。
ああ、誰かこれを書き直すのを手伝ってください。長い説明は失敗します。
php - 「未定義の変数: _SESSION」VS. 「セッションはすでに開始されていました」
おい。私はいくつかのphpスクリプトを持っています。そのうちの1つにsession_start()というコードがあり、別のスクリプトに再びsession_start()があると、通知が表示されます:
Notice: セッションは既に開始されていました...
それは論理的です。しかし、それを削除すると、エラー/通知が表示されます:
注意: 未定義の変数: _SESSION
なんで?どうすれば修正できますか?スクリプト内に session_start() が 2 か所ある場合はスクリプトは正常に動作しますが (ほとんど通知されません)、2 つの session_start() がない場合はまったく機能しません。
持つ唯一の解決策です
私のスクリプトで?そして、通知を無視するのは悪い習慣ではありませんか?
編集:
私のコードの一部:
出力:
注意: 未定義の変数: 19 行目の D:.....\main.php の _SESSION
Notice: 未定義の変数: _SESSION in D:.....\main.php 行 21
ヌル
pre_dump コード: