Created
April 8, 2017 21:45
-
-
Save mghayour/7adbf7bf953df89c3ba2f8b22c1b82c8 to your computer and use it in GitHub Desktop.
this php file report php fatal errors to your telegram account
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
this php file report php fatal errors to your telegram account | |
setup : | |
1- search for "//TODO: edit this" and edit that ! | |
2- include it before all | |
3- enjoy debuging fast as possible | |
*/ | |
function shutdown_report_it() { | |
$error = error_get_last(); | |
if ($error['type'] === E_ERROR) { | |
echo("<p>ERRR</p>"); | |
// fatal error has occured | |
$err="π¨π¨π¨π¨π¨π¨\n"; | |
$err.=json_encode($error); | |
$err.="\nππππππ\n"; | |
reportErrorWithTelegram($err); | |
} | |
} | |
register_shutdown_function('shutdown_report_it'); | |
function report_system_error($errno, $errstr, $errfile, $errline) | |
{ | |
if (!$errno) { | |
// This error code is not included in error_reporting | |
return; | |
} | |
$msg=''; | |
switch ($errno) { | |
case E_USER_ERROR: | |
case E_ERROR: | |
case E_COMPILE_ERROR: | |
$msg.= "<b>My ERROR</b> [$errno]\n $errstr\n"; | |
$msg.= "πFatalπ πerrorπ on line $errline in file $errfile"; | |
$msg.= ", PHP " . PHP_VERSION . " (" . PHP_OS . ")\n"; | |
$msg.= "Aborting...<br />\n"; | |
reportErrorWithTelegram($msg); | |
exit(1); | |
break; | |
default: | |
$msg.= "Unknown error type: [$errno]\n $errstr\n"; | |
$msg.= " βerrorβ on line $errline in file $errfile"; | |
$msg.= ", PHP " . PHP_VERSION . " (" . PHP_OS . ")\n"; | |
reportErrorWithTelegram($msg); | |
break; | |
} | |
/* Don't execute PHP internal error handler */ | |
return true; | |
} | |
// User a custom error handler to print output | |
set_error_handler( 'report_system_error' ); | |
//report error with telegram | |
function reportErrorWithTelegram($msg) { | |
// echo ("reportErrorWithTelegram runned"); | |
// fatal error has occured | |
//TODO: edit this | |
$tid=90054900; // user id number in telegram (its mine, @GhayourForEver) | |
$reply = array('chat_id'=>$tid,'text'=>$msg,'disable_web_page_preview'=>true); | |
$sended_msg = tele_req_with_crash_bot('sendMessage',$reply); | |
// do not run app again until bug solve ... | |
// it have bug, is this really neeed ?? | |
// file_put_contents("./__die.php",'<?php die("APP CRASHED, WAIT FOR DEBUGING"); ? >'); | |
} | |
function tele_req_with_crash_bot ($method,$data) { // telegram request | |
//mghayourbot | |
$API_KEY = 'YOUR_BOT_TOKEN'; //TODO: edit this | |
$ch = curl_init(); | |
curl_setopt($ch, CURLOPT_URL, 'https://api.telegram.org/bot'.$API_KEY.'/'.$method); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); | |
curl_setopt($ch, CURLOPT_POST, 1); | |
// Edit: prior variable $postFields should be $postfields; | |
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // On dev server only! | |
$result = curl_exec($ch); | |
//$result=utf8_decode($result); | |
$result=json_decode($result,true); | |
if ($result['ok']) | |
return $result['result']; | |
else | |
{ | |
// dvar($result); | |
return false; | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment