| [95] | 1 | <?php | 
|---|
| [352] | 2 |  | 
|---|
|  | 3 | // define('XPRESS_EVENT_DEBUG',1); | 
|---|
|  | 4 |  | 
|---|
| [95] | 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 | } | 
|---|
| [96] | 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 | } | 
|---|
| [95] | 130 | ?> | 
|---|