db-error.phpを更に改良!ワードプレスDBエラーを管理者へ色々と知らせる!
これは前回のWordPressのデータベースエラーを改良する項目です。
この改良型のdb-error.phpを使用することにより、ウェブサイトの管理者がユーザーに対して利便性を高める事が可能になります。詳しくは、エラーを起こした際のユーザーの情報を知らせてくれるようになります。また、同じ情報をユーザーへ見せることも可能です。
- 様々な環境変数
- REMOTE_ADDR
- gethostbyaddr
- HTTP_USER_AGENT
- HTTP_ACCEPT_LANGUAGE
- HTTP_REFERER
- PHP_SELF
- REDIRECT_STATUS
- REQUEST_URI
- SERVER_SOFTWARE
- SITE_HTMLROOT
- 様々な日付と時間
上記を簡単にひとまとめにすると、使用しているサーバーが許す限りのPHPで得られる情報を管理者へ送る事が可能です。
実際のコードは以下の様になります。(なお、変数を格納するのに$p1等を使用していますが、これは少しでも、サーバー内のデータ効率を上げる為に行なっています。どの位効率良くなるかは不明ですが、見た目にも綺麗なので ^^; )
<?php // カスタムワードプレスエラー header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 600'); // 1 hour = 3600 seconds $p1 = $_SERVER['REMOTE_ADDR']; $p2 = gethostbyaddr($p1); $p3 = $_SERVER['HTTP_USER_AGENT']; $p4 = $_SERVER['HTTP_ACCEPT_LANGUAGE']; $p5 = $_SERVER['HTTP_REFERER']; $p6 = $_SERVER['PHP_SELF']; $p7 = $_SERVER['REDIRECT_STATUS']; $p8 = $_SERVER['REQUEST_URI']; $p9 = $_SERVER['SERVER_SOFTWARE']; $p10 = $_SERVER['SITE_HTMLROOT']; $p20 = date('Y/m/d'); $p21 = date('H:i:s'); $p22 = date('T'); mail("AnatanoAdoresu@email.com", "データベースエラー","DB_ERROR_500<br />$p20<br />$p21<br />$p22<br />REMOTE_ADDR:$p1<br />REMOTE_HOST:$p2<br />HTTP_USER_AGENT:$p3<br />HTTP_ACCEPT_LANGUAGE:$p4<br />HTTP_REFERER:$p5<br />PHP_SELF:$p6<br />REDIRECT_STATUS:$p7<br />REQUEST_URI:$p8<br />SERVER_SOFTWARE:$p9<br />SITE_HTMLROOT:$p10","From: WatashiNoServer"); ?> <!DOCTYPE HTML> <html> <head> <title>おっと!データベースエラーが発生</title> <style> body { padding:20px; background:#FFF; color:#000; font-size:14pt; } </style> </head> <body> <h1>データベースエラーが発生しました</h1> <p> ^_^;エラーが発生です。</p> <p>ちょっとまってからまたご訪問をm(__)m</p> </body> </html>
基本的には「phpinfo()」で出力出来るものが使えます。
また、メールにて送信される環境変数の情報には上記のサンプルコードの様に「<br />」が含まれていますが、これを「\n」や「、」に変更するなど使いやすい様に変更して下さい。デフォルトのままではテキストで送信されますので、メール内にしっかりと「<br />」が残っています。
他にはdb-error.php内にgoogle analyticsのコードを埋め込み、analytics内でゴール値を設定し、どの位、どこから訪問のアクセスにて問題が起こっているなど調べることができると思います。
あとは創意工夫次第です。
コメント