2011-07-02 6 views
2

私はPHPで書かれたWebサイトを持っており、厳しいレベルのJSコーディングを使用しています。私のクライアントの1人は非常に奇妙なエラーがあります。サイトは空で、何も表示されません。私は同じブラウザ、同じOSを使用しているにもかかわらず、多くの同じアドオンとファイアウォールとアンチウイルスを持っているにもかかわらず、エラーを再現することはできません。プロダクションウェブサイトのすべてのPHPおよびJSエラーをキャッチしてログに記録する方法は?

私はすべてのPHPとJSのエラーまたは警告をキャッチし、エラーログ(best to database)に入れたいと思います。これを実現するための準備ができて簡単な解決策はありますか?私は経験豊富なWeb開発者にこの問題に取り組んでいます。

エラーが発生している間にユーザーセッションに関するすべてのデータをダンプする方法はありますか?私はそれをこのように見ている:ユーザーがこのエラーを持っているとき、彼は何かをクリックする(例えば、拡張子などで)、これはすべてのセッション、エラー情報を私に送信するので、何が起こっているか把握できる。あなたはこの種の解決策を知っていますか?

+2

プラグインなしでブラウザをセーフモードで起動するようクライアントに依頼します。たとえば、私は自分のルールに/ ad *を追加したため、AdBlockをいくつかのサイトのCSSブロックにすることに成功しました。 – mplungjan

+0

アドインは実際には記述した通りに空白のページを実際にブロックしました。 – Drazisil

答えて

1

mplungjanの考えが良いです。

私はまた、クライアントにページのソースを表示し、それを私に送信して問題ないかどうかを確認するよう依頼します。

ウェブサーバー(Apacheなど)は、すべてのPHPリクエストのログファイルを保存し、エラーが発生したかどうかを伝える必要があります。

javascriptエラーをサーバーに報告する方法があるかどうかわかりません。 catch the errorにアクセスでき、エラーハンドラでAJAXリクエストを送信してサーバーにログオンすると、正常に動作します。しかし、私はいくつかのJavaScriptエラー(構文エラーのようなもの)はcatchで捕まえられないと思います。私はJavaScriptのコンソール(または彼のブラウザで呼び出されているもの)を開くようにクライアントに依頼し、彼に見えるすべてのエラーを教えてください。最終的にすべてのエラーを取り除くべきであり、そのための良い戦略は、発生した最初のエラーに集中することです。

私は、有効なHTML/CSSであるかどうかを確認するために、w3cバリデーターを通してページを実行します。

また、動作するはずの最も単純なコードにコードを単純化するという普遍的な手法を試してみるべきですが、うまくいきません。それはあなたが問題を見つけたり、スタックオーバーフローに投稿できるように、とても小さくて簡単なものを作り出します。

0

エラーの種類には、クライアント側とサーバー側の2種類があります。

空白のページはどちらでもかまいませんが、これはサーバー側の可能性が高いと思います。

サーバー側のエラーについては、すべてのエラーをログに記録し、own error handlerを登録してセッションのような独自の情報を追加することもできます。その後、データベースにエラーを記録し、セッションを追加して情報を要求し、backtraceを提供することができます。これにより、より多くの情報を得ることができます。

クライアント側には、David Grayson's answerがあります。

関連する問題