| 1 | <?php | 
|---|
| 2 |  | 
|---|
| 3 | // define('XPRESS_EVENT_DEBUG',1); | 
|---|
| 4 |  | 
|---|
| 5 | if (!function_exists('xpress_debug')) { | 
|---|
| 6 | function xpress_debug($title = '',$ditail_show = false) | 
|---|
| 7 | { | 
|---|
| 8 | $module_dirpath = dirname(dirname(__FILE__)); | 
|---|
| 9 | $root_path = dirname(dirname(dirname(dirname(__FILE__)))); | 
|---|
| 10 | $_debug_file = $module_dirpath . '/wp-content/xpress_debug.log'; | 
|---|
| 11 | $_fp = fopen($_debug_file, 'a'); | 
|---|
| 12 | $stamp = date("Y/m/d G:i:s" , time()); | 
|---|
| 13 | $backtraces = array_reverse(debug_backtrace()); | 
|---|
| 14 | fwrite($_fp, "\n*********************************************************************************************************\n"); | 
|---|
| 15 | fwrite($_fp, $title . '(' . $stamp . ")\n"); | 
|---|
| 16 | fwrite($_fp, '$_SERVER[]' . "\n"); | 
|---|
| 17 | $srerver = "\t" . str_replace("\n","\n\t",sprint_r($_SERVER)); | 
|---|
| 18 | fwrite($_fp, $srerver . "\n\n"); | 
|---|
| 19 |  | 
|---|
| 20 | fwrite($_fp, "BACK TRACE" . "\n"); | 
|---|
| 21 | foreach($backtraces as $backtrace){ | 
|---|
| 22 | $trace = $backtrace['file']. "\tLINE(" . $backtrace['line'] . ")\t" . $backtrace['function']  . "()\n"; | 
|---|
| 23 | $trace = str_replace($root_path,"",$trace); | 
|---|
| 24 | $trace = str_replace("\\","/",$trace); | 
|---|
| 25 | $trace = str_replace($root_path,"",$trace); | 
|---|
| 26 | $trace = "\t" . $trace; | 
|---|
| 27 |  | 
|---|
| 28 | $trace_ditail = "\t" . str_replace("\n","\n\t\t",sprint_r($backtrace)); | 
|---|
| 29 | if ($ditail_show) | 
|---|
| 30 | fwrite($_fp, $trace . $trace_ditail . "\n"); | 
|---|
| 31 | else | 
|---|
| 32 | fwrite($_fp, $trace . "\n"); | 
|---|
| 33 | } | 
|---|
| 34 | fclose($_fp); | 
|---|
| 35 | } | 
|---|
| 36 | } | 
|---|
| 37 |  | 
|---|
| 38 | if (!function_exists('xpress_debug_message')) { | 
|---|
| 39 | function xpress_debug_message($message = '') | 
|---|
| 40 | { | 
|---|
| 41 | $module_dirpath = dirname(dirname(__FILE__)); | 
|---|
| 42 | $root_path = dirname(dirname(dirname(dirname(__FILE__)))); | 
|---|
| 43 | $_debug_file = $module_dirpath . '/wp-content/xpress_debug.log'; | 
|---|
| 44 | $_fp = fopen($_debug_file, 'a'); | 
|---|
| 45 | $stamp = date("Y/m/d G:i:s" , time()); | 
|---|
| 46 | fwrite($_fp, "\n*********************************************************************************************************\n"); | 
|---|
| 47 | fwrite($_fp, '(' . $stamp . ")\n"); | 
|---|
| 48 | fwrite($_fp, $message . "\n"); | 
|---|
| 49 | fclose($_fp); | 
|---|
| 50 | } | 
|---|
| 51 | } | 
|---|
| 52 |  | 
|---|
| 53 | if (!function_exists('sprint_r')) { | 
|---|
| 54 | function sprint_r($var) { | 
|---|
| 55 | ob_start(); | 
|---|
| 56 | print_r($var); | 
|---|
| 57 | $ret = ob_get_contents(); | 
|---|
| 58 | ob_end_clean(); | 
|---|
| 59 | return $ret; | 
|---|
| 60 | } | 
|---|
| 61 | } | 
|---|
| 62 |  | 
|---|
| 63 | function xpress_error_handler($errno,$errstr,$errfile,$errline,$errcontext) { | 
|---|
| 64 | $module_dirpath = dirname(dirname(__FILE__)); | 
|---|
| 65 | $root_path = dirname(dirname(dirname(dirname(__FILE__)))); | 
|---|
| 66 |  | 
|---|
| 67 | $show_backtrace = true; | 
|---|
| 68 |  | 
|---|
| 69 | // Time stamp of error entry | 
|---|
| 70 | $dt = date("Y-m-d H:i:s (T)"); | 
|---|
| 71 |  | 
|---|
| 72 | // define an assoc array of error string | 
|---|
| 73 | // in reality the only entries we should | 
|---|
| 74 | // consider are E_WARNING, E_NOTICE, E_USER_ERROR, | 
|---|
| 75 | // E_USER_WARNING and E_USER_NOTICE | 
|---|
| 76 | $errortype = array ( | 
|---|
| 77 | E_ERROR          => "Error", | 
|---|
| 78 | E_WARNING        => "Warning", | 
|---|
| 79 | E_PARSE          => "Parsing Error", | 
|---|
| 80 | E_NOTICE          => "Notice", | 
|---|
| 81 | E_CORE_ERROR      => "Core Error", | 
|---|
| 82 | E_CORE_WARNING    => "Core Warning", | 
|---|
| 83 | E_COMPILE_ERROR  => "Compile Error", | 
|---|
| 84 | E_COMPILE_WARNING => "Compile Warning", | 
|---|
| 85 | E_USER_ERROR      => "User Error", | 
|---|
| 86 | E_USER_WARNING    => "User Warning", | 
|---|
| 87 | E_USER_NOTICE    => "User Notice", | 
|---|
| 88 | E_STRICT          => "Runtime Notice" | 
|---|
| 89 | ); | 
|---|
| 90 | if (strstr($errstr, 'Use of undefined constant xpress_debug_message - assumed') !== false) return; | 
|---|
| 91 | // set of errors for which a var trace will be saved | 
|---|
| 92 | $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE); | 
|---|
| 93 |  | 
|---|
| 94 | $err = "<errorentry>\n"; | 
|---|
| 95 | $err .= "\t<datetime>" . $dt . "</datetime>\n"; | 
|---|
| 96 | $err .= "\t<errornum>" . $errno . "</errornum>\n"; | 
|---|
| 97 | $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n"; | 
|---|
| 98 | $err .= "\t<errormsg>" . $errstr . "</errormsg>\n"; | 
|---|
| 99 | $err .= "\t<scriptname>" . $errfile . "</scriptname>\n"; | 
|---|
| 100 | $err .= "\t<scriptlinenum>" . $errline . "</scriptlinenum>\n"; | 
|---|
| 101 | $err .= "\t<errcontext>" . $errcontext . "</errcontext>\n"; | 
|---|
| 102 |  | 
|---|
| 103 | if (in_array($errno, $user_errors)) { | 
|---|
| 104 | $err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variables") . "</vartrace>\n"; | 
|---|
| 105 | } | 
|---|
| 106 | $err .= "</errorentry>\n\n"; | 
|---|
| 107 |  | 
|---|
| 108 | $err_trace = ''; | 
|---|
| 109 | if ($show_backtrace){ | 
|---|
| 110 | $backtraces = array_reverse(debug_backtrace()); | 
|---|
| 111 | $err_trace .= "BACK TRACE\n"; | 
|---|
| 112 | foreach($backtraces as $backtrace){ | 
|---|
| 113 | $trace = @$backtrace['file']. "\tLINE(" . @$backtrace['line'] . ")\t" . @$backtrace['function']  . "()\n"; | 
|---|
| 114 | $trace = str_replace($root_path,"",$trace); | 
|---|
| 115 | $trace = str_replace("\\","/",$trace); | 
|---|
| 116 | $trace = str_replace($root_path,"",$trace); | 
|---|
| 117 | $trace = "\t" . $trace; | 
|---|
| 118 | $err_trace .= $trace; | 
|---|
| 119 | } | 
|---|
| 120 | } | 
|---|
| 121 | $head = "\n***** XPressME ERROR LOG ****************************************************************************************************\n"; | 
|---|
| 122 | $message = $head . $err . $err_trace; | 
|---|
| 123 | $_debug_file = $module_dirpath . '/wp-content/xpress_error.log'; | 
|---|
| 124 | if ($errno != E_STRICT) { | 
|---|
| 125 | $_fp = fopen($_debug_file, 'a'); | 
|---|
| 126 | fwrite($_fp, $message); | 
|---|
| 127 | fclose($_fp); | 
|---|
| 128 | } | 
|---|
| 129 | } | 
|---|
| 130 | ?> | 
|---|