GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 134.29.175.74 / Your IP : 216.73.216.160 Web Server : nginx/1.10.2 System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586 User : Administrator ( 0) PHP Version : 7.1.0 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/nginx/html/common/ |
Upload File : |
<? // /common/functions_debug.phpinc // Contains the debug functions that can track your program as it includes other files or calls functions. // These functions can also track or display variable values or text messages. // For *.php pages: Tracking is started by including the application.phpinc file. It is ended by including the pageFooter.phpinc file. // For *.phpinc files: Tracking is started by calling the debugTrackBegin() function. It is ended by calling the debugTrackEnd() function. // For functions: Tracking is started by calling the debugTrackFunctionBegin($fn, $fna) function. It is ended by calling the debugTrackFunctionEnd($fn) function. // Functions: // dc() Return true if $_SESSION['DEBUG']['code'] or $debugOn are true else false. // debugTrack($trackLine, $track_li, $track_html, $track_print) Add a debug track line. // debugTrackBegin() Begin tracking for this include file. // debugTrackEnd() End tracking for this include file. // debugTrackFunction($fn, $fna, $fnr) Track a function with return value. // debugTrackFunctionBegin($fn, $fna, $fnr) Begin tracking a function call. This works like debugTrackBegin() but for functions. // debugTrackFunctionEnd($fn) End tracking a function call. This works like debugTrackEnd() but for functions. // printGETPOST($varDisplay) Displays the values of the $_GET and $_POST arrays. // printLine($messageText) Displays the $messageText as well as the current filename and line. // printQuery($resultName, $result) Displays a SQL query in HTML table format with the calling filename and line number. // printVar($varName, $var, $varDisplay, $varShow) Displays the value of a variable or array with the calling file and line number. // printVarArray($var, $keys, $bShow, $cShow, $fShow, $pShow) Called from printVar to print an array variable. // setDebugOff($messageText) Sets $debugOn to false. // setDebugOn($messageText) Sets $debugOn to true. // setDebugValue($messageText, $value, $debug_backtrace) Called by setDebugOff() or setDebugOn() to set $debugOn to true or false. // varValue($var) Returns the value of a variable or array ready for output or tracking. #$GLOBALS['DEBUG']['codePage'] = false; #$_SESSION['DEBUG']['codeSite'] = false; $DEBUG_functions_debug = false; if ( !isset($_SESSION['DEBUG']['codeSite']) ) $_SESSION['DEBUG']['codeSite'] = false; if ( !isset($_SESSION['DEBUG']['footSite']) ) $_SESSION['DEBUG']['footSite'] = false; if ( !isset($_SESSION['DEBUG']['headSite']) ) $_SESSION['DEBUG']['headSite'] = false; if ( !isset($_SESSION['DEBUG']['lockSite']) ) $_SESSION['DEBUG']['lockSite'] = false; if ( !isset($_SESSION['DEBUG']['memorySite']) ) $_SESSION['DEBUG']['memorySite'] = false; if ( !isset($_SESSION['DEBUG']['mysqlSite']) ) $_SESSION['DEBUG']['mysqlSite'] = false; if ( !isset($GLOBALS['DEBUG']['codePage']) ) $GLOBALS['DEBUG']['codePage'] = false; if ( !isset($GLOBALS['DEBUG']['footPage']) ) $GLOBALS['DEBUG']['footPage'] = false; if ( !isset($GLOBALS['DEBUG']['headPage']) ) $GLOBALS['DEBUG']['headPage'] = false; if ( !isset($GLOBALS['DEBUG']['lockPage']) ) $GLOBALS['DEBUG']['lockPage'] = false; if ( !isset($GLOBALS['DEBUG']['memoryPage']) ) $GLOBALS['DEBUG']['memoryPage'] = false; if ( !isset($GLOBALS['DEBUG']['mysqlPage']) ) $GLOBALS['DEBUG']['mysqlPage'] = false; require('functions_debug_d.phpinc'); // varQuote($var) // Returns the $var within single quotes ('') if not numeric else returns $var. function varQuote($var) { if ( !is_numeric($var) ) { return "'".$var."'"; } else { return $var; } } // The following css classes should be defined for the tracking and display to work correctly: // .pv_a { color:#FF0000; font-weight:bold; } /* array name */ // .pv_as { color:#FF0000; } /* sub-array name */ // .pv_b { font-weight:bold; } /* bold */ // .pv_e { color:#FF0000; } /* error */ // .pv_f { color:#0000CC; } /* function */ // .pv_fl { color:#999999; } /* file and line */ // .pv_i { color:#0000FF; } /* info */ // .pv_l { text-align:left; } /* left */ // .pv_n { color:#00FF00; } /* notice */ // .pv_pw { color:#FF6600; font-weight:bold; } /* password */ // .pv_q { color:#9900FF; } /* query */ // .pv_qc { color:#FF00FF; } /* query count */ // .pv_ua { color:#00CC00; } /* user authenticated */ // .pv_un { color:#CC0000; } /* user not authenticated */ // .pv_v { color:#666666; } /* variable name */ // .pv_w { color:#FF9900; } /* warning */ // printDivVar($varName, $var, $varDisplay, $debug_backtrace, $ksorti) // Display a variable within a + (expand) - (collapse) box. // See the printVar function for a description of the function arguments. function printDivVar($varName, $var='', $varDisplay='', $debug_backtrace=false, $ksorti=true) { if ( is_resource($var) ) { $num_rows = mysqli_num_rows($var); } else { $num_rows = 0; } if ( !$debug_backtrace ) $debug_backtrace = debug_backtrace(); $id = 'id'.uuid(); if ( $num_rows <> 0 ) { if ( $num_rows <> 1 ) { $num_rows = $num_rows." rows"; } else { $num_rows = "1 row"; } // Show file line. if ( strstr($varDisplay,'f') ) { $fShow = ''; } else { $fShow = ' <span class="d_s_fl">'.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].'</span>'; } ?> <div id="<?=$id?>" class="d_s_l"><a href="javascript: divShow('<?=$id?>div'); divHide('<?=$id?>');"><span class="d_s_q"><?=$varName?></span>:<?=$num_rows?>:+</a><?=$fShow?></div> <div id="<?=$id?>div" class="d_s_h d_s_l"><a href="javascript: divShow('<?=$id?>'); divHide('<?=$id?>div');"><span class="d_s_q"><?=$varName?>=</span>:<?=$num_rows?>:=</a><?=$fShow?> <? printVar($varName,$var,'v',$debug_backtrace); ?> </div> <? } else { printVar($varName,$var,'',$debug_backtrace); } } // debugTrack($trackLine, $track_li, $track_html, $track_print) // Add a debug track line. // $trackLine = The text to add to $_SESSION['TRACK']. // $track_li = Put the trackLine inside <li></li> tags. Default it true. // $track_html = Encode the trackLine so it is HTML code safe. Default it false. // $track_print = Display the trackLine as well as adding it to $_SESSION['TRACK']. Default it false. function debugTrack($trackLine = '', $track_li = true, $track_html = false, $track_print = false) { global $debugTrack; // False = skip tracking for this track line. Default is true. if (!isset($debugTrack)) $debugTrack = true; // Ensure $debugTrack is set. if (!$debugTrack) return; // Return if $debugTrack is false. $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. if ($debugTrack) { if (!isset($_SESSION['TRACK'])) { $_SESSION['TRACK'] = '<span class="pv_b pv_w">TRACK unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; } if (!isset($_SESSION['DEBUG'])) { $_SESSION['TRACK'] .= '<span class="pv_b pv_w">DEBUG unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; $_SESSION['DEBUG'] = array(); } if (!isset($_SESSION['DEBUG']['track'])) { $_SESSION['TRACK'] .= '<span class="pv_b pv_w">DEBUG track unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; $_SESSION['DEBUG']['track'] = array(); } if (!isset($_SESSION['DEBUG']['track']['indent'])) { $_SESSION['TRACK'] .= '<span class="pv_b pv_w">DEBUG track indent unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; $_SESSION['DEBUG']['track']['indent'] = ''; } if ($track_html) $trackLine = htmlView($trackLine); if ($track_li) { $_SESSION['TRACK'] .= debugIndent()."<li>".$trackLine.":".$file.":".$line." (".$filepath.")"."</li>\n"; } else { $_SESSION['TRACK'] .= debugIndent().$trackLine.":".$file.":".$line." (".$filepath.")"."\n"; } } if ($track_print) echo $trackLine.":".$file.":".$line." (".$filepath.")"."<br>\n"; } // debugTrackBegin() // Begin tracking for this include file. function debugTrackBegin() { global $debugTrack; // False = skip tracking for this include file. Default is true. if (!isset($debugTrack)) $debugTrack = true; // Ensure $debugTrack is set. if (!$debugTrack) return; // Return if $debugTrack is false. $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. global $thisFile; // Including filename. global $thisLine; // Including file line. #$_SESSION['TRACK'] .= "<li>".basename(__FILE__).":".__LINE__.": "."Session variables already set.\n"; if (!isset($_SESSION['TRACK'])) $_SESSION['TRACK'] = '<span class="pv_b pv_w">DEBUG tracking unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; // Display warning if $_SESSION['TRACK'] is not set. $_SESSION['TRACK'] .= debugIndent()."<li><b>$file</b>:$line. ($filepath)"; // Start the track line. if ($thisFile != '') $_SESSION['TRACK'] .= " (include from $thisFile:$thisLine)"; // If $thisFile is set then this file was included in another file. $_SESSION['TRACK'] .= "\n"; // End the track line $_SESSION['DEBUG']['track']['indent']++; $_SESSION['DEBUG']['track']['ol']++; $_SESSION['TRACK'] .= debugIndent()."<ol>\n"; $_SESSION['DEBUG']['track']['indent']++; } function debugOlDec() { $_SESSION['DEBUG']['track']['ol']--; if ( $_SESSION['DEBUG']['track']['ol'] < 0 ) $_SESSION['DEBUG']['track']['ol'] = 0; } function debugIndent() { if ( $_SESSION['DEBUG']['track']['indent'] < 0 ) { return str_repeat(' ', $_SESSION['DEBUG']['track']['indent']); } else { return ''; } } function debugIndentDec() { $_SESSION['DEBUG']['track']['indent']--; if ( $_SESSION['DEBUG']['track']['indent'] < 0 ) $_SESSION['DEBUG']['track']['indent'] = 0; } // debugTrackEnd() // End tracking for this include file. // if ($debugTrack && substr($file, 0, 9) != 'functions') debugTrackEnd() // Only call debugTrackEnd() if not called from a functions* file. function debugTrackEnd() { global $debugTrack; // False = skip tracking for this include file. Default is true. if (!isset($debugTrack)) $debugTrack = true; // Ensure $debugTrack is set. if (!$debugTrack) return; // Return if $debugTrack is false. $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. if ( !isset($_SESSION['TRACK']) ) $_SESSION['TRACK'] = '<span class="pv_b pv_w">DEBUG tracking unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; debugIndentDec(); debugOlDec(); $_SESSION['TRACK'] .= debugIndent()."</ol>\n"; $_SESSION['TRACK'] .= debugIndent().'End '."$file:$line.\n"; debugIndentDec(); $_SESSION['TRACK'] .= debugIndent()."</li>\n"; } // debugTrackFunction($fn, $fna, $fnr) // Track a function call. // $fn = function name. // $fna = the function arguments. // $fnr = the function result. function debugTrackFunction($fn, $fna, $fnr) { global $debugTrack; // False = skip tracking for this function. Default is true. if (!isset($debugTrack)) $debugTrack = true; // Ensure $debugTrack is set. if (!$debugTrack) return; // Return if $debugTrack is false. $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. $_SESSION['TRACK'] .= debugIndent()."<li><span class=\"pv_n\">$fn($fna)=".varValue($fnr)."</span></li>\n"; } // debugTrackFunctionBegin($fn, $fna, $fnr) // Begin tracking a function call. // $fn = function name. // $fna = the function arguments. function debugTrackFunctionBegin($fn, $fna) { global $debugTrack; // False = skip tracking for this function. Default is true. if (!isset($debugTrack)) $debugTrack = true; // Ensure $debugTrack is set. if (!$debugTrack) return; // Return if $debugTrack is false. $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. $_SESSION['DEBUG']['track']['indent']++; $_SESSION['TRACK'] .= $fn."(".$fna.")\n"."<ol>\n"; $_SESSION['DEBUG']['track']['indent']++; $_SESSION['DEBUG']['track']['ol']++; } // debugTrackFunctionEnd($fn) // End tracking a function call. // $fn = function name. function debugTrackFunctionEnd($fn) { global $debugTrack; // False = skip tracking for this function. Default is true. if (!isset($debugTrack)) $debugTrack = true; // Ensure $debugTrack is set. if (!$debugTrack) return; // Return if $debugTrack is false. $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. debugIndentDec(); $_SESSION['TRACK'] .= "</ol>\n"; debugIndentDec(); debugOlDec(); } // pageCleanupBegin() // Call at the begining of the page and then use pageCleanupEnd() to get a cleanup list. // Store an array of PHP variable names currently set. function pageCleanupBegin() { if ( !isset($_SESSION['pageCleanupCount']) ) $_SESSION['pageCleanupCount'] = 0; $_SESSION['pageCleanupCount']++; $_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']] = array(); foreach ($GLOBALS as $thisVar => $temp ) { $_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']][] = $thisVar; } natcasesort($_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']]); } // pageCleanupEnd() // Call at the end of the page to get a cleanup list. // Compares current PHP variable names with those stored and output cleanup list. function pageCleanupEnd() { $cleanup__ = array(); $cleanup_f = array(); $cleanup_v = array(); $cleanup = array(); if ( !isset($_SESSION['pageCleanupCount']) ) $_SESSION['pageCleanupCount'] = 0; if ( !isset($_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']]) ) $_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']] = array(); foreach ($GLOBALS as $thisVar => $temp ) { if ( !in_array($thisVar,$_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']]) ) { if ( substr($thisVar,0,2) == '__' ) { $cleanup__[] = $thisVar; } else { if ( substr($thisVar,0,2) == 'f_' ) { $cleanup_f[] = $thisVar; } else { if ( substr($thisVar,0,2) == 'v_' ) { $cleanup_v[] = $thisVar; } else { $cleanup[] = $thisVar; } } } } } unset($_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']]); $_SESSION['pageCleanupCount']--; natcasesort($cleanup__); natcasesort($cleanup_f); natcasesort($cleanup_v); natcasesort($cleanup); $debug_backtrace = debug_backtrace(); echo '<span class="d_s_fl">Cleanup '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].'</span><span class="d_s_fp">('.$debug_backtrace[0]['file'].')</span>'."<br>\n"; echo "<b>#Cleanup.<br>\n"; foreach ($cleanup__ as $thisVar ) { echo 'unset($'.$thisVar.");<br>\n"; } foreach ($cleanup_v as $thisVar ) { echo 'unset($'.$thisVar.");<br>\n"; } foreach ($cleanup_f as $thisVar ) { echo 'unset($'.$thisVar.");<br>\n"; } foreach ($cleanup as $thisVar ) { echo 'unset($'.$thisVar.");<br>\n"; } echo "</b><br>\n"; } // printGETPOST($varDisplay) // Displays the values of the $_GET and $_POST arrays. function printGETPOST($varDisplay = 'f') { printVar('$_GET', $_GET, $varDisplay); printVar('$_POST', $_POST, $varDisplay); } // printLine($messageText) // Displays the $messageText as well as the current filename and line. function printLine($messageText = '',$varDisplay = '') { $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. $vShow = ''; if ( stripos($varDisplay, 'a') !== false ) $vShow .= ' d_s_a'; // Display value as array = .d_s_an if ( stripos($varDisplay, 'b') !== false ) $vShow .= ' d_s_b'; // Display value as bold = .d_s_b. if ( stripos($varDisplay, 'e') !== false ) $vShow .= ' d_s_d'; // Display value as scaler = .d_s_d. if ( stripos($varDisplay, 'e') !== false ) $vShow .= ' d_s_e'; // Display value as error = .d_s_e. if ( stripos($varDisplay, 'i') !== false ) $vShow .= ' d_s_i'; // Display value as info = .d_s_i. if ( stripos($varDisplay, 'n') !== false ) $vShow .= ' d_s_n'; // Display value as notice = .d_s_n. if ( stripos($varDisplay, 'q') !== false ) { $vShow .= ' d_s_q'; $messageText = str_replace("\t"," ",$messageText); } // Display value as query = .d_s_q. if ( stripos($varDisplay, 'r') !== false ) $vShow .= ' d_s_r'; // Display value as resource = .d_s_r. if ( stripos($varDisplay, 's') !== false ) $vShow .= ' d_s_as'; // Display value as sub-array = .d_s_ap. if ( stripos($varDisplay, 'w') !== false ) $vShow .= ' d_s_w'; // Display value as warning = .d_s_w. if ( stripos($varDisplay, '/') !== false ) { $vBR = '<br>'; } else { $vBR = ''; } // Include beginning <br> tag.. $vShow = trim($vShow); if ( $vShow == '' ) $vShow .= ' d_s_i'; // Display value as info = .d_s_i. Default. $vShow = '<span class="'.$vShow.'">'; echo $vBR.$vShow.$messageText,'</span> <span class="d_s_fl">'.$file.':'.$line.' <span class="d_s_fp">('.$filepath.')</span></span><br>'; } // printVar($varName, $var, $varDisplay, $debug_backtrace, $ksorti) // Displays and tracks the value of a variable or array with the calling file and line number. // $varName = The name of the variable. // $var = The variable. // $varDisplay = / = Show <br> tag before output. // f = Do not show calling filename and line. // d = Display name as array scaler name = .d_s_as. // h = Do not show the variable value. // l = Do not show the line but add <li></li> tags and add it to the TRACKing data. // p = Show passwords. Othwewise keys with 'password' or 'pw' in the key name are replaced with ********. // t = Display value without making it HTML safe. // v = Do not show the variable name. // $varDisplay = Any one of the following: Default is to display value as scaler = .d_s_v. // a = Display value as array = .d_s_an. // b = Display value as bold = .d_s_b. // e = Display value as error = .d_s_e. // i = Display value as info = .d_s_i. // n = Display value as notice = .d_s_n. // q = Display value as query = .d_s_q. // r = Display value as resource = .d_s_r. // s = Display value as sub-array = .d_s_ap. // w = Display value as warning = .d_s_an. // Examples: '/p' Show a br before output, show passwords, and show calling filename and line. // 'ef' Show varName using class="d_s_e" without showing calling filename and line. function printVar($varName, $var='', $varDisplay='', $debug_backtrace=false, $ksorti=true) { global $bShow, $fShow, $lShow, $nShow, $pShow, $vShow, $vvShow, $vnShow, $ksorti; if ( !$debug_backtrace ) { $debug_backtrace = debug_backtrace(); // Get caller information. #echo "<br>\n";print_r($debug_backtrace);echo "<br>\n"; #printVar('$debug_backtrace',$debug_backtrace,'/',$debug_backtrace,false); } $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. // / = Show <br> tag before output. $bShow = ( stripos($varDisplay, '/') !== false ? '<br>' : '' ); // f = Do not show calling filename and line. $fShow = (stripos($varDisplay, 'f') === false ? ' <span class="d_s_fl">'.$file.':'.$line.' <span class="d_s_fp">('.$filepath.')</span></span>' : ''); // Do not show the variable value. $vvShow = (stripos($varDisplay, 'h') !== false ? false : true); // l = Do not show the line but add <li></li> tags and add it to the TRACKing data. $lShow = (stripos($varDisplay, 'l') !== false ? true : false); #if ( !isset($nShow) || $nShow == '' ) $nShow = ( stripos($varDisplay, 'd') !== false ? ' class="d_s_ad"' : '' ); $nShow = ( stripos($varDisplay, 'd') !== false ? ' class="d_s_ad"' : '' ); #if ( !isset($nShow) ) $nShow = ''; #if ( stripos($varDisplay, 'd') !== false ) $nShow .= ' class="d_s_ad"'; // Display name as array scaler name = .d_s_as. #echo d_s_DEBUG().$nShow; if ( stripos($varDisplay, 'l') !== false ) { $lShow = true; } else { $lShow = false; } // p = Show passwords. Othwewise keys with 'password' or 'pw' in the key name are replaced with ********. $pShow = (stripos($varDisplay, 'p') !== false ? true : false); // t = Display value without making it HTML safe. $tShow = (stripos($varDisplay, 't') !== false ? false : true); // v = Do not show the variable name. $vnShow = (stripos($varDisplay, 'v') !== false ? false : true); $vShow = ''; if ( stripos($varDisplay, 'a') !== false ) $vShow .= ' d_s_a'; // Display value as array = .d_s_an if ( stripos($varDisplay, 'b') !== false ) $vShow .= ' d_s_b'; // Display value as bold = .d_s_b. if ( stripos($varDisplay, 'e') !== false ) $vShow .= ' d_s_e'; // Display value as error = .d_s_e. if ( stripos($varDisplay, 'i') !== false ) $vShow .= ' d_s_i'; // Display value as info = .d_s_i. if ( stripos($varDisplay, 'n') !== false ) $vShow .= ' d_s_n'; // Display value as notice = .d_s_n. if ( stripos($varDisplay, 'q') !== false ) { $vShow .= ' d_s_q'; $var = str_replace("\t"," ",$var); } // Display value as query = .d_s_q. if ( stripos($varDisplay, 'r') !== false ) $vShow .= ' d_s_r'; // Display value as resource = .d_s_r. if ( stripos($varDisplay, 's') !== false ) $vShow .= ' d_s_as'; // Display value as sub-array = .d_s_ap. if ( stripos($varDisplay, 'w') !== false ) $vShow .= ' d_s_w'; // Display value as warning = .d_s_w. $vShow = trim($vShow); if ( $vShow == '' ) $vShow .= ' d_s_d'; // Display value as scaler = .d_s_d. Default. $vShow = '<span class="'.$vShow.'">'; $displayTrack = ''; $displayTrack .= '<div class="d_s_l ">'.d_s_DEBUG(); if (false) { if ($vnShow) { if ($displayTrack != '') $displayTrack .= d_s_DEBUG().'<span class="d_s_n">'.' $vnShow=true $varDisplay='."'".$varDisplay."'</span> "; } else { if ($displayTrack != '') $displayTrack .= d_s_DEBUG().'<span class="d_s_n">'.' $vnShow=false $varDisplay='."'".$varDisplay."'</span> "; } if ($lShow) $displayTrack .= d_s_DEBUG()."\$lShow = true "; } if ( !is_resource($var) ) { // This is not a resource. if (isset($var)) { if (!is_array($var) && !is_object($var)) { if ( $nShow == '') $nShow = ' class="d_s_v"'; if ($vvShow) { if ($var === true) { if ( $vnShow ) { $displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName ===</span> <span class=\"d_s_vt\">true</span>$fShow\n"; } else { $displayTrack .= d_s_DEBUG()."$bShow<span class=\"d_s_vt\">true</span>$fShow</span>\n"; } } else { if ($var === false) { if ( $vnShow ) { $displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName ===</span> <span class=\"d_s_vf\">false</span>$fShow\n"; } else { $displayTrack .= d_s_DEBUG()."$bShow<span class=\"d_s_vf\">false</span>$fShow</span>\n"; } } else { if ( $vnShow ) { if ( $tShow ) { $displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName ==</span>$vShow ".htmlView(str_replace("\\", "\\\\", varQuote($var)))."</span>$fShow\n"; } else { $displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName ==</span>$vShow ".str_replace("\\", "\\\\", varQuote($var))."</span>$fShow\n"; } } else { if ( $tShow ) { $displayTrack .= d_s_DEBUG()."$bShow$vShow".htmlView(str_replace("\\", "\\\\", varQuote($var)))."</span>$fShow\n"; } else { $displayTrack .= d_s_DEBUG()."$bShow$vShow".str_replace("\\", "\\\\", varQuote($var))."</span>$fShow\n"; } } } } } else { if ( $vnShow ) { $displayTrack .= d_s_DEBUG()."$bShow"."$fShow\n"; } else { $displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName</span>"."$fShow\n"; } } } else { $displayTrack .= printVarArray(d_s_DEBUG().$varName, $var); } } else { if ( $nShow == '') $nShow = ' class="d_s_e"'; $displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName</span> is unset.$fShow\n"; } } else { // This is a resource. if ( $nShow == '') $nShow = ' class="d_s_r"'; switch ( get_resource_type($var) ) { case 'mysql result': if ($vShow == '') $vShow = '<span class="d_s_q">'; #$nShow = ' class="d_s_r"'; $displayTrack = printVarQuery(d_s_DEBUG().$varName, $var, $debug_backtrace); break; default: $displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName</span> is resource type ".get_resource_type($var)."$fShow\n"; break; } } $displayTrack .= d_s_DEBUG()."</div>\n"; if (!$lShow) { echo $displayTrack; } else { if ( isset($_SESSION['TRACK']['data']) ) { $_SESSION['TRACK'] .= '<li>'.$displayTrack.'</li>'; } else { echo d_s_DEBUG().'After TRACK display" ',$displayTrack; } } #unset($displayTrack); unset($bShow); unset($fShow); unset($ksorti); unset($lShow); unset($nShow); unset($pShow); unset($vShow); unset($vnShow); unset($vvShow); return $displayTrack; } // printVarArray($var, $keys, $bShow, $vShow, $fShow, $nShow, $pShow, $vvShow); // Called from printVar to print an array variable. #function printVarArray($varName, $var, $keys) { function printVarArray($varName, $var) { global $bShow, $fShow, $lShow, $nShow, $pShow, $vShow, $vvShow, $vnShow, $ksorti; $displayTrack = "$bShow$vShow".$varName."=</span>$fShow<br>\n"; #$bShow = ''; if ( $ksorti == true ) $var = ksorti($var); foreach ($var as $key => $value) { if (!is_array($value)) { if (!$pShow && (stristr($key, 'password') || stristr($key, 'pw'))) $value = '***hidden***'; if ($value === true) { if ( !is_numeric($key) ) { $displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."['".$key."'] ===</span> <span class=\"d_s_vt\">true</span><br>\n"; } else { $displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."[".$key."] ===</span> <span class=\"d_s_vt\">true</span><br>\n"; } } else { if ($value === false) { if ( !is_numeric($key) ) { $displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."['".$key."'] ===</span> <span class=\"d_s_vf\">false</span><br>\n"; } else { $displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."[".$key."] ===</span> <span class=\"d_s_vf\">false</span><br>\n"; } } else { if ( !is_numeric($key) ) { $displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."['".$key."'] ==</span> <span class=\"d_s_d\">".htmlView(str_replace("\\", "\\\\", varQuote($value)))."</span><br>\n"; } else { $displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."[".$key."] ==</span> <span class=\"d_s_d\">".htmlView(str_replace("\\", "\\\\", varQuote($value)))."</span><br>\n"; } } } $bShow = ''; } else { $fShow = ''; #$displayTrack .= "".printVarArray($varName."['".$key."']", $value, $keys."['".$key."']"); $displayTrack .= "".printVarArray(d_s_DEBUG().$varName."['".$key."']", $value); $bShow = ''; } } return $displayTrack; } // printVarQuery($resultName, $result, $debug_backtrace = false) // Called by printVar to display a mysql result. function printVarQuery($resultName, $result, $debug_backtrace = false) { global $bShow, $fShow, $lShow, $nShow, $pShow, $vShow, $vvShow, $vnShow, $ksorti; if ( !$debug_backtrace ) { $debug_backtrace = debug_backtrace(); // Get caller information. } $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. $displayTrack = ''; if ($vnShow) { $displayTrack .= d_s_DEBUG()."$bShow<div class=\"d_s_l \"><span$nShow>$resultName</span>\n".d_s_DEBUG(); } else { $displayTrack .= "<div class=\"d_s_l \">\n".d_s_DEBUG(); } $num_rows = mysqli_num_rows($result); if( !$num_rows ) { if ($vnShow) { $displayTrack .= d_s_DEBUG().': <span class="d_s_e">0 rows</span>.'."$fShow <!-- ".__LINE__." -->\n".d_s_DEBUG(); } return $displayTrack; } if ( $num_rows <> 1 ) { if ($vnShow) { $displayTrack .= d_s_DEBUG().": $num_rows rows: $fShow\n".d_s_DEBUG(); } } else { if ($vnShow) { $displayTrack .= d_s_DEBUG().": 1 row: $fShow\n".d_s_DEBUG(); } } mysqli_data_seek($result, 0); $row = mysqli_fetch_assoc($result); // Begin the table. $displayTrack .= d_s_DEBUG()."<table>\n <tr>\n"; // Print the column names as table headers. foreach($row as $key=>$value) { $displayTrack .= " <th>$key</th>"; } $displayTrack .= "\n </tr>\n"; // Loop through the table, printing the field values in table cells. mysqli_data_seek($result, 0); while ($row = mysqli_fetch_assoc($result)) { $displayTrack .= " <tr>\n"; foreach($row as $key=>$value) { $displayTrack .= " <td>".d_s_DEBUG().varValue($value)."</td>"; } $displayTrack .= "\n </tr>\n"; } // End the table. $displayTrack .= " </tr>\n</table>".d_s_DEBUG()."\n <!-- ".__LINE__." -->\n"; return $displayTrack; } // d_s_DEBUG() // Used when $functions_debug_DEBUG = true to track which __LINE__ generated output. function d_s_DEBUG() { return ''; } // printQuery($resultName, $result) // Displays a SQL query in HTML table format with the calling filename and line number. // $resultName + The name of the query. // $result + The query. // RETURNS: // true if there is data in the result set. // false if there is no data in the result. function xprintQuery($resultName, $result) { $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. echo "<div class=\"pv_l\"><span class = \"pv_f\">", $resultName, "=</span> $file:$line. ($filepath)<br>\n"; // Fet the first row in the table. mysqli_data_seek($result, 0); if(!$row = mysqli_fetch_assoc($result)) { echo "null</div>\n"; return false; } // Begin the table. print("<table><tr>"); // Print the column names as table headers. foreach($row as $key=>$value) { print("<th>$key</th>"); } print("</tr>"); // Loop through the table, printing the field values in table cells. do { print("<tr>"); foreach($row as $key=>$value) { print("<td>".varValue($value)."</td>"); } print("</tr>"); } while ($row = mysqli_fetch_assoc($result)); // End the table. print("</tr></table></div>"); return true; } // printVar($varName, $var, $varDisplay, $varShow) // Displays and tracks the value of a variable or array with the calling file and line number. // $varName = The name of the variable. // $var = The variable. // $varDisplay = b = show br before output. // f = show calling filename and line. // v = =$var is not shown. // p = show passwords. Othwewise keys with 'password' or 'pw' in the key name are hidden. // e = show varName using class="pv_e". error // i = show varName using class="pv_i". info // n = show varName using class="pv_n". notice // w = show varName using class="pv_w". warning // 'bfp' would show a br before output, show calling filename and line, and show passwords. // 'bpe' would show a br before output, show varName using class="pv_e", and show passwords. // default is f for non array variables and fa for arrays. // $varShow = true = display printVar // false = add printVar to $_SESSION['TRACK']. // default is true. function xprintVar($varName, $var = '', $varDisplay = 'f', $varShow = true) { global $debugTrack; // False = skip tracking for this function. Default is true. if (!isset($debugTrack)) $debugTrack = true; // Ensure $debugTrack is set. $debug_backtrace = debug_backtrace(); // Get caller information. $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. $bShow = (stripos($varDisplay, 'b') !== false ? '<br>' : ''); $cShow = (stripos($varDisplay, 'i') !== false ? ' class="pv_i"' : ''); if ($cShow == '') $cShow = (stripos($varDisplay, 'e') !== false ? ' class="pv_e"' : ''); if ($cShow == '') $cShow = (stripos($varDisplay, 'n') !== false ? ' class="pv_n"' : ''); if ($cShow == '') $cShow = (stripos($varDisplay, 'w') !== false ? ' class="pv_w"' : ''); if ($cShow == '') if (is_array($var)) $cShow = ' class="pv_a"'; $fShow = (stripos($varDisplay, 'f') !== false ? ' <span class="pv_fl">'.$file.':'.$line.'</span>' : ''); $vShow = (stripos($varDisplay, 'v') !== false ? false : true); $pShow = (stripos($varDisplay, 'p') !== false ? true : false); $printVarArray_Debug = false; if ($printVarArray_Debug) { $l1 = ' <span class="pv_n">l1</span>'; $l2 = ' <span class="pv_n">l2</span>'; $l3 = ' <span class="pv_n">l3</span>'; $l4 = ' <span class="pv_n">l4</span>'; $l5 = ' <span class="pv_n">l5</span>'; } else { $l1 = ''; $l2 = ''; $l3 = ''; $l4 = ''; $l5 = ''; } $displayTrack = '<div class="pv_l pv_v">'.$l1; if (isset($var)) { if (!is_array($var) && !is_object($var)) { if ($var === true) { $displayTrack .= "$bShow<span$cShow>$varName===</span>true$fShow\n".$l2; } else { if ($var === false) { $displayTrack .= "$bShow<span$cShow>$varName===</span>false$fShow\n".$l2; } else { if ($vShow) { $displayTrack .= "$bShow<span$cShow>$varName=</span><span class=\"pv_d\">".htmlView(str_replace("\\", "\\\\", $var))."</span>$fShow\n".$l2; } else { $displayTrack .= "$bShow<span$cShow>$varName</span>"."$fShow\n".$l2; } } } } else { $displayTrack .= printVarArray($varName, $var, '', $bShow, $cShow, $fShow, $pShow, $printVarArray_Debug).$l3; } } else { $displayTrack .= "$bShow<span$cShow>$varName</span> is unset.$fShow\n".$l4; } $displayTrack .= "</div>\n".$l5; if ($varShow) { echo $displayTrack; } else { if ($debugTrack && substr($file, 0, 9) != 'functions') debugTrack($displayTrack); } unset($displayTrack); return $varShow; } // printVarArray($var, $keys, $bShow, $cShow, $fShow, $pShow); // Called from printVar to print an array variable. function xprintVarArray($varName, $var, $keys, $bShow, $cShow, $fShow, $pShow, $printVarArray_Debug) { $displayTrack = "$bShow<span$cShow>".$varName."=</span>$fShow<br>\n"; $bShow = ''; if ($printVarArray_Debug) { $l6 = ' <span class="pv_n">l6</span>'; $l7 = ' <span class="pv_n">l7</span>'; } else { $l6 = ''; $l7 = ''; } foreach ($var as $key => $value) { if (!is_array($value)) { if (!$pShow && (stristr($key, 'password') || stristr($key, 'pw'))) $value = '***hidden***'; if ($value === true) { $displayTrack .= $varName."['".$key."']===true<br>\n"; } else { if ($value === false) { $displayTrack .= $varName."['".$key."']===false<br>\n"; } else { $displayTrack .= $varName."['".$key."']=<span class=\"pv_d\">".htmlView(str_replace("\\", "\\\\", $value)).$l6."</span><br>\n"; } } $bShow = ''; } else { $fShow = ''; $displayTrack .= "".printVarArray($varName."['".$key."']", $value, $keys."['".$key."']", $bShow, $cShow, $fShow, $pShow, $printVarArray_Debug).$l7.""; $bShow = ''; } } return $displayTrack; } // setDebugOff($messageText) // Sets $debugOn to false. // $messageText = optional text you want to track when setting $debugOn. function setDebugOff($messageText='') { $debug_backtrace = debug_backtrace(); // Get caller information. $_SESSION['Message'] = ''; if ( isset($_SESSION['PageHeaderLoaded']) && $_SESSION['PageHeaderLoaded'] ) { printLine('Debug Off: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')'); } debugTrack('Debug Off: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')'); setDebugValue($messageText, false, $debug_backtrace); } function debugOff($messageText='') { $debug_backtrace = debug_backtrace(); // Get caller information. $_SESSION['Message'] = ''; if ( isset($_SESSION['PageHeaderLoaded']) && $_SESSION['PageHeaderLoaded'] ) { printLine('Debug Off: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')'); } debugTrack('Debug Off: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')'); setDebugValue($messageText, false, $debug_backtrace); } // setDebugOn($messageText) // Sets $debugOn to true. // $messageText = optional text you want to track when setting $debugOn. function setDebugOn($messageText='') { $debug_backtrace = debug_backtrace(); // Get caller information. #printVar("\$_SESSION['PageHeaderLoaded']",$_SESSION['PageHeaderLoaded'],'',false,true); if ( isset($_SESSION['PageHeaderLoaded']) && $_SESSION['PageHeaderLoaded'] ) { printLine('Debug On: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')'); } debugTrack('Debug On: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')'); setDebugValue($messageText, true, $debug_backtrace); } function debugOn($messageText='') { $debug_backtrace = debug_backtrace(); // Get caller information. #printVar("\$_SESSION['PageHeaderLoaded']",$_SESSION['PageHeaderLoaded'],'',false,true); if ( isset($_SESSION['PageHeaderLoaded']) && $_SESSION['PageHeaderLoaded'] ) { printLine('Debug On: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')'); } debugTrack('Debug On: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')'); setDebugValue($messageText, true, $debug_backtrace); } // setDebugValue($messageText, $value, $debug_backtrace) // Called by setDebugOff() or setDebugOn() to set $debugOn to true or false. function setDebugValue($messageText='', $value=true, $debug_backtrace=false) { global $debugTrack; // False = skip tracking for this function. Default is true. if (!isset($debugTrack)) $debugTrack = true; // Ensure $debugTrack is set. if (!$debug_backtrace) $debug_backtrace = debug_backtrace(); // Get caller information if not sent by setDebugOff(). $file = basename($debug_backtrace['0']['file']); // Function caller file filename. $filepath = $debug_backtrace['0']['file']; // Function caller file filepath. $line = $debug_backtrace['0']['line']; // Function caller file line number. global $debugOn; $debugOn = $value; $_SESSION['DEBUG']['on']['File'] = $debug_backtrace['0']['file']; $_SESSION['DEBUG']['on']['Line'] = $debug_backtrace['0']['line']; if (isset($_SESSION['TRACK'])) { $_SESSION['TRACK'] .= "<li>"; if ($debugTrack != '') if ($debugOn) { $_SESSION['TRACK'] .= '<span class="pv_n">Debug turned on. '.$messageText.'</span> '; } else { $_SESSION['TRACK'] .= '<span class="pv_e">Debug turned off. '.$messageText.'</span> '; } if ($debugTrack != '') if ($_SESSION['DEBUG']['code']) { $_SESSION['TRACK'] .= '<span class="pv_n">$_SESSION[\'DEBUG\'][\'code\'] is on.</span> '; } else { $_SESSION['TRACK'] .= '<span class="pv_e">$_SESSION[\'DEBUG\'][\'code\'] is off.</span> '; } if ($debugTrack != '') if ($_SESSION['DEBUG']['mysql']) { $_SESSION['TRACK'] .= '<span class="pv_n">$_SESSION[\'DEBUG\'][\'mysql\'] is on.</span> '; } else { $_SESSION['TRACK'] .= '<span class="pv_e">$_SESSION[\'DEBUG\'][\'mysql\'] is off.</span> '; } $_SESSION['TRACK'] .= '<span class="pv_fl">: '.basename($debug_backtrace['0']['file']).":".$debug_backtrace['0']['line'].'</span></li>'."\n"; } } // varValue($var) // Returns the value of a variable or array. // $var = The variable. function varValue($var) { if (isset($var)) { if (!is_array($var)) { if ($var === true) { $debugVarValue = 'true'; } else { if ($var === false) { $debugVarValue = 'false'; } else { $debugVarValue = htmlView($var); } } } else { $debugVarValue = 'Array('; foreach ($var as $key => $value) { $debugVarValue .= '['.$key.']='.varValue($value).', '; } $debugVarValue = substr($debugVarValue,0,strlen($debugVarValue)-2); } } else { $debugVarValue = '<span class="pv_e">unset</span>'; } return $debugVarValue; } ?>