WordPress.org

Plugin Directory

Changeset 656637


Ignore:
Timestamp:
01/22/13 02:16:01 (15 months ago)
Author:
askapache
Message:

Added ability to view wordpress actions, filters, and hooks, plus plugin debugging.
Added security key for requesting and accessing the server-status, server-info, and server-env.cgi files

Location:
askapache-debug-viewer
Files:
20 added
4 edited

Legend:

Unmodified
Added
Removed
  • askapache-debug-viewer/trunk/askapache-debug-viewer.php

    r653137 r656637  
    55 * Short Name: AA Debug 
    66 * Description: Displays Advanced Debugging Output 
    7  * Author: askapache,cduke250 
    8  * Version: 2.5 
     7 * Author: AskApache 
     8 * Version: 2.6 
    99 * Updated: 01/15/2013 - 9:08 PM 
    1010 * Requires at least: 3.1.0 
    1111 * Tested up to: 3.5 
    1212 * Tags: debug, debugging, error, errors, warning, problem, bug, problems, support, admin, programmer, developer, plugin, development, information, stats, logs, queries, htaccess, password, error, support, askapache, apache, rewrites 
    13  * Contributors: askapache,cduke250 
    1413 * WordPress URI: http://wordpress.org/extend/plugins/askapache-debug-viewer/ 
    1514 * Author URI: http://www.askapache.com/ 
     
    823822        'plugin_debug_level' => 0, 
    824823        'debug_mods_v' => 0, 
    825         'debug_mods' => 1155773 
     824        'debug_mods' => 107197 
    826825    ); 
    827826 
     
    980979        $D[(1 << sizeof($D))]=array('get_debug_queries',        'DataBase Queries'); 
    981980        $D[(1 << sizeof($D))]=array('get_debug_crons',          'WordPress Crons'); 
     981        $D[(1 << sizeof($D))]=array('get_debug_plugins',        'WordPress Plugins'); 
     982        $D[(1 << sizeof($D))]=array('get_debug_filters',        'WordPress Actions/Filters'); 
    982983        $this->debug_mods=$D; 
    983984        unset($D); 
     
    10011002        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',10); 
    10021003    } 
    1003  
    10041004 
    10051005    /** AA_DEBUG::DefaultOptions() 
     
    10331033        $this->SaveOptions(); 
    10341034 
    1035         $key=wp_generate_password(64,true,true); 
    1036         $pass=wp_hash_password($key); 
     1035        $key=wp_generate_password(24,false,false); 
    10371036         
    10381037        // default array of options 
     
    10431042             'log_errors' => '1', 
    10441043             'key' => $key, 
    1045              'pass' => $pass, 
    10461044             'debug_live' => '0', 
    10471045             'admin_footer' => '1', 
     
    10521050             'display_height' => 300, 
    10531051             'debug_mods_v' => 0, 
    1054              'debug_mods' => 1155773 
     1052             'debug_mods' => 107197 
    10551053        ); 
    10561054 
     
    10731071    } 
    10741072 
    1075  
    1076  
    10771073    /** AA_DEBUG::Activate() 
    10781074     */ 
     
    11171113        if( function_exists('current_user_can') && !current_user_can('administrator') ) wp_die(__FUNCTION__.':'.__LINE__); 
    11181114 
    1119         $this->end_f_htaccess(); 
     1115        $this->deactivate_ff_htaccess(); 
    11201116 
    11211117        delete_option($this->_qn.'_plugin'); 
     
    14031399 
    14041400    /** AA_DEBUG::AdminPage() 
    1405      * @version 1.1 
     1401     * @version 1.2 
    14061402     */ 
    14071403    function AdminPage() 
     
    14221418        { 
    14231419            case 'server-info': 
    1424                 $this->fix_f_htaccess(); 
    1425  
    1426                 $url=PLUGINS_COOKIE_PATH.str_replace(array('https://',WP_PLUGIN_URL),array('http://',''), plugins_url('/f/f/server-info',__FILE__) ); 
    1427                 $f=str_replace(basename(__FILE__),'f/f/server-info', __FILE__); 
    1428  
    1429  
    1430                 if(!file_exists($f)) echo "\nCANNOT CONTINUE: {$f} not found.\n"; 
    1431                 else { 
    1432  
    1433                         // resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) 
    1434                         if (false === ( $fp = fsockopen($_SERVER['HTTP_HOST'], 80, $errno, $errstr,5) ) || !is_resource($fp) ) echo $this->socket_error($fp, (int)$errno, $errstr); 
    1435                         if ( !is_resource($fp) ) echo $this->socket_error($fp, (int)$errno, $errstr); 
    1436                         else { 
    1437                             $response=$headers=$body=''; 
    1438                             $request='GET '.$url.' HTTP/1.0'."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)' 
    1439                             ."\r\n".'Accept-Encoding: none'."\r\n".'Referer: http://www.askapache.com/'."\r\n"."X-Pad: AA6{$_SERVER['REMOTE_ADDR']}" 
    1440                             ."\r\n".'Cookie: AA6'.LOGGED_IN_COOKIE."=\r\n".'Connection: close'."\r\n\r\n"; 
    1441  
    1442                             fwrite($fp, $request); 
    1443                             while (!feof($fp)) $response .= fread($fp, 1); 
    1444                             $response=explode("\r\n\r\n",$response,2); 
    1445                             $headers=$response[0]; 
    1446                             $body=$response[1]; 
    1447  
    1448  
    1449  
    1450                             if(strpos($headers,'200 OK')!==false)echo "\n{$body}\n"; 
    1451                             else { 
    1452                                 echo '<pre class="aa_pre2">'."\nFILE: {$f}\n". $this->_statls($f,1).'</pre>'; 
    1453                                 echo "\n<h3>HEADER TRACE</h3><pre class='aa_pre2'>\n".str_repeat("&gt;",100)."\n".htmlspecialchars($request)."\n".str_repeat("&lt;",100)."\n".htmlspecialchars($headers)."</pre>"; 
    1454                                 $this->print_rq(htmlspecialchars($body)); 
    1455                             } 
    1456  
    1457                             if (is_resource($fp)) @fclose($fp); 
    1458                         } 
    1459                 } 
    1460  
    1461                 $this->options['page']='home';$this->SaveOptions(); 
    1462                 $this->end_f_htaccess(); 
     1420                echo $this->get_socket_request('server-info'); 
    14631421            break; 
    14641422 
    14651423            case 'server-status': 
    1466                 $this->fix_f_htaccess(); 
    1467  
    1468                 $url=PLUGINS_COOKIE_PATH.str_replace(array('https://',WP_PLUGIN_URL),array('http://',''), plugins_url('/f/f/server-status',__FILE__) ); 
    1469                 $f=str_replace(basename(__FILE__),'f/f/server-status', __FILE__); 
    1470  
    1471                 if(!file_exists($f)) echo "\nCANNOT CONTINUE: {$f} not found.\n"; 
    1472                 else { 
    1473  
    1474                         // resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) 
    1475                         if (false === ( $fp = fsockopen($_SERVER['HTTP_HOST'], 80, $errno, $errstr,5) ) || !is_resource($fp) ) echo $this->socket_error($fp, (int)$errno, $errstr); 
    1476                         if ( !is_resource($fp) ) echo $this->socket_error($fp, (int)$errno, $errstr); 
    1477                         else { 
    1478                             $response=$headers=$body=''; 
    1479                             $request='GET '.$url.' HTTP/1.0'."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)' 
    1480                             ."\r\n".'Accept-Encoding: none'."\r\n".'Referer: http://www.askapache.com/'."\r\n"."X-Pad: AA6{$_SERVER['REMOTE_ADDR']}" 
    1481                             ."\r\n".'Cookie: AA6'.LOGGED_IN_COOKIE."=\r\n".'Connection: close'."\r\n\r\n"; 
    1482  
    1483                             fwrite($fp, $request); 
    1484                             while (!feof($fp)) $response .= fread($fp, 1); 
    1485                             $response=explode("\r\n\r\n",$response,2); 
    1486                             $headers=$response[0]; 
    1487                             $body=$response[1]; 
    1488  
    1489  
    1490  
    1491                             if(strpos($headers,'200 OK')!==false)echo "\n{$body}\n"; 
    1492                             else { 
    1493                                 echo '<pre class="aa_pre2">'."\nFILE: {$f}\n". $this->_statls($f,1).'</pre>'; 
    1494                                 echo "\n<h3>HEADER TRACE</h3><pre class='aa_pre2'>\n".str_repeat("&gt;",100)."\n".htmlspecialchars($request)."\n".str_repeat("&lt;",100)."\n".htmlspecialchars($headers)."</pre>"; 
    1495                                 $this->print_rq(htmlspecialchars($body)); 
    1496                             } 
    1497  
    1498                             if (is_resource($fp)) @fclose($fp); 
    1499                         } 
    1500                 } 
    1501  
    1502                 $this->options['page']='home';$this->SaveOptions(); 
    1503                 $this->end_f_htaccess(); 
     1424                echo $this->get_socket_request('server-status'); 
    15041425            break; 
    15051426 
    15061427            case 'server-env': 
    1507                 $this->fix_f_htaccess(); 
    1508  
    1509                 $url=PLUGINS_COOKIE_PATH.str_replace(array('https://',WP_PLUGIN_URL),array('http://',''), plugins_url('/f/f/server-env.cgi',__FILE__) ); 
    1510                 $f=str_replace(basename(__FILE__),'f/f/server-env.cgi', __FILE__); 
    1511  
    1512                 $perms=0; 
    1513                 if(file_exists($f)) $perms=intval(substr(sprintf('%o', fileperms($f)), -3)); 
    1514  
    1515                 if(!file_exists($f)) echo "\nCANNOT CONTINUE: {$f} not found.\n"; 
    1516                 else { 
    1517  
    1518                     if( ($perms!=744 && $perms < 755) && !@chmod($f, 0744)) echo "\nCANNOT CONTINUE: {$f} perms need to be 744 or higher. # chmod u+x {$f}\n"; 
    1519                     else { 
    1520  
    1521                         // resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) 
    1522                         if (false === ( $fp = fsockopen($_SERVER['HTTP_HOST'], 80, $errno, $errstr,5) ) || !is_resource($fp) ) echo $this->socket_error($fp, (int)$errno, $errstr); 
    1523                         if ( !is_resource($fp) ) echo $this->socket_error($fp, (int)$errno, $errstr); 
    1524                         else { 
    1525                             $response=$headers=$body=''; 
    1526                             $request='GET '.$url.' HTTP/1.0'."\r\n".'Host: '.$_SERVER['HTTP_HOST']."\r\n".'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)' 
    1527                             ."\r\n".'Accept-Encoding: none'."\r\n".'Referer: http://www.askapache.com/'."\r\n"."X-Pad: AA6{$_SERVER['REMOTE_ADDR']}" 
    1528                             ."\r\n".'Cookie: AA6'.LOGGED_IN_COOKIE."=\r\n".'Connection: close'."\r\n\r\n"; 
    1529  
    1530                             fwrite($fp, $request); 
    1531                             while (!feof($fp)) $response .= fread($fp, 1); 
    1532                             $response=explode("\r\n\r\n",$response,2); 
    1533                             $headers=$response[0]; 
    1534                             $body=$response[1]; 
    1535  
    1536  
    1537  
    1538                             if(strpos($headers,'200 OK')!==false)echo "\n<pre class='aa_pre2'>".htmlspecialchars($body)."\n</pre>\n"; 
    1539                             else { 
    1540                                 echo '<pre class="aa_pre2">'."\nFILE: {$f}\n". $this->_statls($f,1).'</pre>'; 
    1541                                 echo "\n<h3>HEADER TRACE</h3><pre class='aa_pre2'>\n".str_repeat("&gt;",100)."\n".htmlspecialchars($request)."\n".str_repeat("&lt;",100)."\n".htmlspecialchars($headers)."</pre>"; 
    1542                                 $this->print_rq(htmlspecialchars($body)); 
    1543                             } 
    1544  
    1545                             if (is_resource($fp)) @fclose($fp); 
    1546                         } 
    1547                     } 
    1548  
    1549                 } 
    1550  
    1551  
    1552                 $this->options['page']='home';$this->SaveOptions(); 
    1553                 $this->end_f_htaccess(); 
     1428                echo '<pre class="aa_pre2">'.$this->get_socket_request('server-env.cgi', '0744').'</pre>'; 
    15541429            break; 
    15551430             
    1556  
    15571431 
    15581432            case 'phpinfo': 
     
    16261500 
    16271501                echo '<form action="' . admin_url($this->_plugin['action']) . '" method="post" id="'.$this->_plugin['op'].'_form">'; 
     1502                echo '<hr />'; 
    16281503                $this->ff( array('form'=>5,'type'=>'hidden','id'=>'_' . $this->_plugin['nonce'],'name'=>'_' . $this->_plugin['nonce'],'value'=>wp_create_nonce($this->_plugin['nonce']),'pre'=>'<p style="display:none;">','post'=>'') ); 
    16291504                $this->ff( array('form'=>5,'type'=>'hidden','id'=>'_wp_http_referer','name'=>'_wp_http_referer','value'=>(esc_attr($_SERVER['REQUEST_URI'])) ,'pre'=>'','post'=>'</p>') ); 
     
    16331508                $this->ff( array('form'=>1,'type'=>'checkbox','title'=>'<strong>View in admin_footer</strong>','id'=>'admin_footer','checked'=>($this->options['admin_footer']=='1'),'value'=>$this->options['admin_footer']) ); 
    16341509                $this->ff( array('form'=>1,'type'=>'checkbox','title'=>'<strong>View in wp_footer</strong>','id'=>'wp_footer','checked'=>($this->options['wp_footer']=='1'),'value'=>$this->options['wp_footer']) ); 
     1510                $this->ff( array('form'=>1,'type'=>'checkbox','title'=>'<strong>Log Errors to File</strong>','id'=>'log_errors','checked'=>($this->options['log_errors']=='1'),'value'=>$this->options['log_errors']) ); 
     1511                 
     1512                //$this->ff( array('form'=>1,'type'=>'checkbox','title'=>'<strong>Enable Live Debugging</strong>','id'=>'debug_live','checked'=>($this->options['debug_live']=='1'),'value'=>$this->options['debug_live']) ); 
     1513 
     1514                echo '<hr />'; 
     1515                $this->ff( array('form'=>2,'type'=>'text','class'=>'aa_mid','title'=>'Error Log File','id'=>'logfile','value'=>$this->options['logfile']) ); 
    16351516                echo '<hr />'; 
    16361517                 
    1637                 //$this->ff( array('form'=>1,'type'=>'checkbox','title'=>'<strong>Enable Live Debugging</strong>','id'=>'debug_live','checked'=>($this->options['debug_live']=='1'),'value'=>$this->options['debug_live']) ); 
    1638                 $this->ff( array('form'=>2,'type'=>'text','class'=>'aa_wide','title'=>'PHP Error Reporting Level (try 2147483647)','id'=>'error_reporting','value'=>$this->options['error_reporting']) ); 
    1639                  
    1640                 // SHOW ERROR INFO 
    1641                 $e=array();$eany=0; 
    1642                 foreach($this->get_error_levels(0,'defined') as $k=>$v) $eany |= $e["$k"]=constant($k); 
    1643                 printf('<p>Previous error_reporting: <strong>%1$s</strong> - %2$s</p>', intval($this->old_inis['error_reporting']), $this->get_error_levels($this->old_inis['error_reporting'],'error2string')); 
    1644  
    1645  
    1646                 printf('<p>Current  error_reporting: <strong>%1$s</strong> - %2$s</p>', $eany, $this->get_error_levels($eany,'error2string')); 
    1647                 echo '<ul style="margin-left:1em;">'; 
    1648                 foreach($this->get_error_levels(error_reporting(),'enabled') as $k=>$v) echo "<li><strong>{$v[1]} ({$v[0]})</strong>: {$v[2]}</li>"; 
    1649                 echo '</ul>'; 
    1650                  
    1651                 $this->display_ini_error_configs(); 
    1652                 echo '<p>To duplicate the current error_reporting setting in a script:<br /><code>error_reporting('.$this->get_error_levels(error_reporting(),'error2string').');</code></p>'; 
    1653  
    1654  
    1655                 echo '<hr />'; 
    1656                  
    1657                 $this->ff( array('form'=>1,'type'=>'checkbox','title'=>'<strong>Log Errors to File</strong>','id'=>'log_errors','checked'=>($this->options['log_errors']=='1'),'value'=>$this->options['log_errors']) ); 
    1658                 $this->ff( array('form'=>2,'type'=>'text','class'=>'aa_wide','title'=>'Error Log File: ','id'=>'logfile','value'=>$this->options['logfile']) ); 
    1659                 echo '<hr />'; 
    16601518                 
    16611519                //$this->ff( array('form'=>1,'type'=>'checkbox','title'=>'<strong>Show Admin Bar</strong>','id'=>'admin_bar','checked'=>($this->options['admin_bar']=='1'),'value'=>$this->options['admin_bar']) ); 
     
    16701528 
    16711529                echo '<div style="padding-left:10px">'; 
     1530                echo '<h3>Output Modules</h3>'; 
    16721531                //$this->ff( array('form'=>5,'type'=>'hidden','id'=>'debug_mods_v','name'=>'debug_mods_v','value'=>$this->options['debug_mods_v'],'pre'=>'','post'=>'') ); 
    16731532                $this->ff( array('form'=>5,'type'=>'hidden','id'=>'debug_mods','name'=>'debug_mods','value'=>$this->options['debug_mods'],'pre'=>'','post'=>'') ); 
     
    16771536                    //$this->ff(array('form'=>4,'type'=>'checkbox','title'=>'Verbose','id'=>'debug_mods_v','name'=>'debug_mods_v[]','value'=>$id,'checked'=>(($id & $this->options['debug_mods_v'])==$id),'pre'=>'','post'=>"<br style='clear:both;' /></p>")); 
    16781537                } 
    1679                 echo '<hr /></div><hr />'; 
     1538                echo '</div>'; 
     1539                echo '<hr />'; 
     1540 
     1541                $this->ff( array('form'=>2,'type'=>'text','class'=>'aa_small','title'=>'PHP Error Reporting Level (try 2147483647)','id'=>'error_reporting','value'=>$this->options['error_reporting']) ); 
     1542         
     1543                echo '<div style="padding-left:10px; width:90%; margin:0 auto;">'; 
     1544                printf('<p>Current: <strong>%1$s</strong> - %2$s<br /><code>error_reporting(%2$s)</code></p>', error_reporting(), $this->get_error_levels(error_reporting(),'error2string')); 
     1545                printf('<p>Previous: <strong>%1$s</strong> - %2$s<br /><code>error_reporting(%2$s)</code></p>', intval($this->old_inis['error_reporting']), $this->get_error_levels(intval($this->old_inis['error_reporting']),'error2string')); 
     1546                echo '</div>'; 
     1547 
     1548                $this->display_ini_error_configs(); 
     1549                echo '<hr />'; 
     1550 
    16801551 
    16811552                $this->ff( array('form'=>5,'type'=>'submit','class'=>'button-primary','id'=>'save_debug_options','name'=>'save_debug_options','value'=>'Save Changes &raquo;','pre'=>'<p class="submit">','post'=>' '.str_repeat('&nbsp;',11).' ') ); 
     
    17101581        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',25); 
    17111582         
    1712         echo "<p id=\"{$this->_plugin['op']}_css_menu\">"; 
     1583        echo "<div id=\"{$this->_plugin['op']}_css_menu\"><ul>"; 
    17131584         
    17141585        foreach ($this->pages as $id => $idv) { 
    1715             printf('<a href="%1$s" title="%3$s" class="aa_css_menu_btn">%2$s</a> ', $this->pages[$id]['nonce'], $this->pages[$id]['name'], $this->pages[$id]['title']); 
    1716         } 
    1717          
    1718         echo '<a class="aa_css_menu_btn" title="WP Plugin Home" href="http://wordpress.org/extend/plugins/askapache-debug-viewer/">WP PLUGIN HOME</a>'; 
    1719  
    1720         echo '<br style="clear:both;" /></p>'; 
     1586            printf('<li><a href="%1$s" title="%3$s" class="aa_css_menu_btn">%2$s</a></li>', $this->pages[$id]['nonce'], $this->pages[$id]['name'], $this->pages[$id]['title']); 
     1587        } 
     1588         
     1589        echo '<li><a class="aa_css_menu_btn" title="WP Plugin Home" href="http://wordpress.org/extend/plugins/askapache-debug-viewer/">WP PLUGIN HOME</a></li></ul>'; 
     1590 
     1591        echo '</div>'; 
    17211592         
    17221593        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',25); 
     
    17291600        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',25); 
    17301601         
    1731         echo '<div style="padding-left:10px"><h3>PHP Error Handling Configuration Settings (current|original)</h3><ul style="margin-left:1em;">'; 
     1602 
     1603        echo '<div style="padding-left:10px; width:90%; margin:0 auto;">'; 
     1604         
     1605        // SHOW ERROR INFO 
     1606        $e=array();$eany=0; 
     1607        foreach($this->get_error_levels(0,'defined') as $k=>$v) $eany |= $e["$k"]=constant($k); 
     1608        /* 
     1609        echo '<ul style="margin-left:4em;">'; 
     1610        foreach($this->get_error_levels(error_reporting(),'enabled') as $k=>$v) echo "<li><strong>{$v[1]} ({$v[0]})</strong>: {$v[2]}</li>"; 
     1611        echo '</ul>'; 
     1612        */ 
     1613 
     1614         
     1615        echo '<p><strong>PHP Error Handling Configuration (php.ini) Settings (current|original)</strong></p><ul style="margin-left:1em;">'; 
    17321616         
    17331617        $directives=array( 
     
    17601644        } 
    17611645         
    1762         echo '</ul></div><hr />'; 
     1646        echo '</ul>'; 
     1647         
     1648        echo '</div>'; 
    17631649         
    17641650        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',25); 
     
    17881674 
    17891675 
    1790         echo "<div><br style=\"clear:both\" /></div>"; 
    1791  
    1792         echo "<h3 class=\"aa_h31\">{$this->_plugin['plugin-name']} {$this->_plugin['version']} Debugging Information </h3><hr id='aahidehr' />"; 
     1676        echo "<div><br style=\"clear:both\" /></div><hr id='aahidehr' />"; 
    17931677        echo '<div id="aan" style="height:'.absint($this->options['display_height']).'px;"><div id="aao">'; 
    17941678 
     
    18011685                $this->pptlinks($ar); 
    18021686                $st=sanitize_title_with_dashes($ar); 
    1803                 echo '<div id="tabs-'.$st.'" class="'.strlen($outp).'"><a name="'.$st.'" id="'.$st.'"></a>'; 
     1687                echo '<div id="tabs-'.$st.'"><a name="'.$st.'" id="'.$st.'"></a>'; 
    18041688                echo $this->{$this->debug_mods[$id][0]}( true ); //echo $this->{$this->debug_mods[$id][0]}( ($this->options['debug_mods_v'] & $id)==$id ); 
    18051689                echo "<p><br />\n\n\n\n</p>"; 
     
    20571941                echo $args['pre']; 
    20581942                echo "<label title='{$desc}' for='{$id}'> {$args['title']}:</label>"; 
    2059                 echo "<br style='clear:both;' />"; 
    20601943                echo "<input title='{$desc}' name='{$id}' type='{$args['type']}' class='{$args['class']}' id='{$id}' value='".$args['value']."' />"; 
    20611944                echo $args['post']; 
     
    21131996        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    21141997         
    2115         $oa[]="\n\n\n\n\n"; 
     1998        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    21161999        return $this->pp($oa,true); 
    21172000    } 
     
    21512034        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    21522035         
    2153         return '<pre class="aa_pre2">'.ob_get_clean()."\n\n\n\n\n".'</pre>'; 
     2036        return '<pre class="aa_pre2">'.ob_get_clean()."\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n".'</pre>'; 
    21542037    } 
    21552038 
     
    25492432        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    25502433         
    2551         $oa[]="\n\n\n\n\n"; 
     2434        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    25522435        return $this->pp($oa,true); 
    25532436    } 
     
    25702453        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    25712454         
    2572         $oa[]="\n\n\n\n\n"; 
     2455        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    25732456        return $this->pp($oa,true); 
    25742457    } 
     
    26142497        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    26152498         
    2616         $oa[]="\n\n\n\n\n"; 
     2499        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    26172500        return $this->pp(array($oa),true); 
    26182501    } 
     
    26582541        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    26592542         
    2660         $oa[]="\n\n\n\n\n"; 
     2543        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    26612544        return $this->pp($oa,true); 
    26622545    } 
     
    26832566        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    26842567         
    2685         $oa[]="\n\n\n\n\n"; 
     2568        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    26862569        return $this->pp($oa,true); 
    26872570    } 
     
    27052588        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    27062589 
    2707         $oa[]="\n\n\n\n\n"; 
     2590        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    27082591        return $this->pp($oa,true); 
    27092592    } 
     
    27572640        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    27582641         
    2759         $oa[]="\n\n\n\n\n"; 
     2642        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    27602643        return $this->pp($oa,true); 
    27612644    } 
     
    29142797        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5);     
    29152798 
    2916         return $this->pp($this->ed($out,'out')."\n\n\n\n\n"); 
     2799        return $this->pp($this->ed($out,'out')."\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); 
    29172800        //return $ret; 
    29182801    } 
     
    29292812        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    29302813         
    2931         $oa[]="\n\n\n\n\n"; 
     2814        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    29322815        return $this->pp($oa,true); 
    29332816    } 
     
    29352818    /** AA_DEBUG::get_debug_aa_plugin( $vb = false ) 
    29362819     * 
    2937      * @version 1.3 
     2820     * @version 1.5 
    29382821     * @param mixed $vb 
    29392822     */ 
     
    29432826 
    29442827        $oa=array( 
    2945             "{$_SERVER['REQUEST_METHOD']}"=>${$aapm}, 
    29462828            'options'=>$this->options, 
    29472829            'plugin'=>$this->_plugin, 
     
    29542836        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    29552837         
    2956         $oa[]="\n\n\n\n\n"; 
     2838        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    29572839        return $this->pp($oa,true); 
    29582840    } 
     
    29992881    /** AA_DEBUG::get_debug_crons( $vb = false ) 
    30002882     * 
    3001      * @version 2.3.2 
     2883     * @version 2.3.3 
    30022884     * @param mixed $vb 
    30032885     */ 
     
    30082890        $oa=array( 
    30092891            'schedules'=>wp_get_schedules(), 
    3010             'crons'=>_get_cron_array() 
     2892            'crons'=>_get_cron_array(), 
     2893            ' '=>"\n\n\n\n\n" 
    30112894        ); 
    30122895 
    30132896        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    30142897 
    3015         $oa[]="\n\n\n\n\n"; 
     2898        $oa[' ']="\n\n\n\n\n";$oa[]="\n\n\n\n\n";$oa[]="\n\n\n\n\n"; 
    30162899        return $this->pp($oa,true); 
     2900    } 
     2901 
     2902    /** AA_DEBUG::get_debug_plugins() 
     2903     * 
     2904     * @since 2.6 
     2905     * @version 1.0 
     2906     * 
     2907     * @param mixed $vb 
     2908     */ 
     2909    function get_debug_plugins( $vb = false ) 
     2910    { 
     2911        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     2912 
     2913        $all_plugins = get_plugins(); 
     2914 
     2915        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     2916         
     2917        $all_plugins[]="\n\n\n\n\n"; 
     2918        return $this->pp($all_plugins,true); 
     2919    } 
     2920 
     2921    /** AA_DEBUG::get_debug_filters() 
     2922     * 
     2923     * @since 2.6 
     2924     * @version 1.0 
     2925     * 
     2926     * @param mixed $vb 
     2927     */ 
     2928    function get_debug_filters( $vb = false ) 
     2929    { 
     2930        global $wp_filter, $wp_actions; 
     2931         
     2932        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     2933 
     2934        $ret=array('wp_filters'=>array_keys($wp_filter), 'wp_actions'=>$wp_actions, 'wp_filter'=>$wp_filter, ' '=>"\n\n\n\n\n\n\n\n"); 
     2935         
     2936        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     2937         
     2938        $ret[]="\n\n\n\n\n"; 
     2939        return $this->pp($ret,true); 
    30172940    } 
    30182941 
     
    40613984    } 
    40623985 
    4063     /** AA_DEBUG::fix_f_htaccess() 
    4064      */ 
    4065     function fix_f_htaccess() 
     3986    /** AA_DEBUG::activate_ff_htaccess() 
     3987     * 
     3988     * @since 2.6 
     3989     * @version 1.0 
     3990     * 
     3991     */ 
     3992    function activate_ff_htaccess() 
    40663993    { 
    40673994        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     
    40693996        if(!$this->check_auth())return; 
    40703997 
    4071         $fh=str_replace(basename(__FILE__),'f/f/.htaccess', __FILE__); 
    4072         if(!file_exists($fh)) echo "\nCANNOT CONTINUE: {$fh} not found.\n"; 
     3998        $htaccess_file=str_replace(basename(__FILE__),'f/f/.htaccess', __FILE__); 
     3999        if(!file_exists($htaccess_file)) echo "\nCANNOT CONTINUE: {$htaccess_file} not found.\n"; 
    40734000        else { 
    4074             $fhc=file_get_contents($fh); 
    4075             if(strpos($fhc,'%ASKAPACHECOOKIEREPLACE%')===false) { 
    4076                 $fhc="AA55ERASE\nOptions +ExecCGI +FollowSymLinks\nAddHandler cgi-script .cgi\n<Files server-info>\nSetHandler server-info\n</Files>\n<Files server-status>\nSetHandler server-status\n</Files>\nRewriteEngine On\nRewriteBase /\nRewriteCond %{HTTP_COOKIE} ^.*AA6%ASKAPACHECOOKIEREPLACE%=.*$ [NC]\nRewriteCond %{HTTP:X-Pad} ^.*AA6%ASKAPACHEXPADREPLACE%.*$ [NC]\nRewriteRule .* - [S=1]\nRewriteRule .* - [F]"; 
    4077                 if(!file_put_contents($fh, $fhc))echo "\nCANNOT CONTINUE: {$fh} not written.\n"; 
    4078             } 
    4079  
    4080             $fhc=str_replace('AA55ERASE', '#AA66ERASE', $fhc); 
    4081             $fhc=str_replace('AA6%ASKAPACHECOOKIEREPLACE%', 'AA6'.LOGGED_IN_COOKIE, $fhc); 
    4082             $fhc=str_replace('AA6%ASKAPACHEXPADREPLACE%', 'AA6'.$_SERVER['REMOTE_ADDR'], $fhc); 
    4083             if(!file_put_contents($fh, $fhc))echo "\nCANNOT CONTINUE: {$fh} not correct.\n"; 
    4084         } 
    4085  
    4086         $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
    4087     } 
    4088  
    4089     /** AA_DEBUG::end_f_htaccess() 
    4090      */ 
    4091     function end_f_htaccess() 
     4001            $ahr=array(); 
     4002            $ahr[]="Options +ExecCGI +FollowSymLinks"; 
     4003            $ahr[]="AddHandler cgi-script .cgi"; 
     4004            $ahr[]="<Files server-info>"; 
     4005            $ahr[]="SetHandler server-info"; 
     4006            $ahr[]="</Files>"; 
     4007            $ahr[]="<Files server-status>"; 
     4008            $ahr[]="SetHandler server-status"; 
     4009            $ahr[]="</Files>"; 
     4010            $ahr[]="RewriteEngine On"; 
     4011            $ahr[]="RewriteBase /"; 
     4012            $ahr[]="RewriteCond %{HTTP_COOKIE} ^.*".LOGGED_IN_COOKIE."=.*$"; 
     4013            $ahr[]="RewriteCond %{HTTP:X-Pad} ^".$this->options['key']."$"; 
     4014            $ahr[]="RewriteRule .* - [S=1]"; 
     4015            $ahr[]="RewriteRule .* - [F]"; 
     4016            $active_htaccess_rules=join("\n", $ahr); 
     4017             
     4018            if(!file_put_contents($htaccess_file, $active_htaccess_rules))echo "\nCANNOT CONTINUE: {$htaccess_file} not written.\n"; 
     4019        } 
     4020 
     4021        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     4022    } 
     4023 
     4024    /** AA_DEBUG::deactivate_ff_htaccess() 
     4025     * 
     4026     * @since 2.6 
     4027     * @version 1.0 
     4028     * 
     4029     */ 
     4030    function deactivate_ff_htaccess() 
    40924031    { 
    40934032        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     
    40954034        if(!$this->check_auth())return; 
    40964035 
    4097         $fh=str_replace(basename(__FILE__),'f/f/.htaccess', __FILE__); 
    4098         if(!file_exists($fh)) echo "\nCANNOT CONTINUE: {$fh} not found.\n"; 
     4036        $htaccess_file=str_replace(basename(__FILE__),'f/f/.htaccess', __FILE__); 
     4037        if(!file_exists($htaccess_file)) echo "\nCANNOT CONTINUE: {$htaccess_file} not found.\n"; 
    40994038        else { 
    4100             $fhc="AA55ERASE\nOptions +ExecCGI +FollowSymLinks\nAddHandler cgi-script .cgi\n<Files server-info>\nSetHandler server-info\n</Files>\n<Files server-status>\nSetHandler server-status\n</Files>\nRewriteEngine On\nRewriteBase /\nRewriteCond %{HTTP_COOKIE} ^.*AA6%ASKAPACHECOOKIEREPLACE%=.*$ [NC]\nRewriteCond %{HTTP:X-Pad} ^.*AA6%ASKAPACHEXPADREPLACE%.*$ [NC]\nRewriteRule .* - [S=1]\nRewriteRule .* - [F]"; 
    4101             if(!file_put_contents($fh, $fhc))echo "\nCANNOT CONTINUE: {$fh} not correct.\n"; 
     4039            $iahr=array(); 
     4040            $iahr[]="RewriteEngine On"; 
     4041            $iahr[]="RewriteBase /"; 
     4042            $iahr[]="RewriteRule .* - [F]"; 
     4043            $inactive_htaccess_rules=join("\n", $iahr); 
     4044             
     4045            if(!file_put_contents($htaccess_file, $inactive_htaccess_rules))echo "\nCANNOT CONTINUE: {$htaccess_file} not written.\n"; 
    41024046        } 
    41034047 
     
    41274071    } 
    41284072 
     4073    /** AA_DEBUG::get_socket_request($n='',$p='') 
     4074     * 
     4075     * @since 2.6 
     4076     * @version 1.0 
     4077     * 
     4078     * @param mixed $vb 
     4079     */ 
     4080    function get_socket_request($n='',$p='') 
     4081    { 
     4082        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     4083 
     4084        $this->activate_ff_htaccess(); 
     4085         
     4086         
     4087        $url=PLUGINS_COOKIE_PATH.str_replace(array('https://',WP_PLUGIN_URL),array('http://',''), plugins_url('/f/f/'.$n,__FILE__) ); 
     4088        $f=str_replace(basename(__FILE__),'f/f/'.$n, __FILE__); 
     4089        $ret=''; 
     4090 
     4091 
     4092        if(file_exists($f)) 
     4093        { 
     4094            if(!empty($p)) { 
     4095                $perms=0; 
     4096                $perms=intval(substr(sprintf('%o', fileperms($f)), -3)); 
     4097                if( (intval($perms)!=744 && intval($perms) < 755) && !@chmod($f, $p)) $ret="\nCANNOT CONTINUE: {$f} perms need to be {$p} or higher (currently {$perms}). # chmod u+x {$f}\n"; 
     4098            } 
     4099        } 
     4100         
     4101 
     4102        if(!file_exists($f)) $ret="\nCANNOT CONTINUE: {$f} not found.\n"; 
     4103         
     4104        if($ret=='') { 
     4105 
     4106            // resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) 
     4107            if (false === ( $fp = fsockopen($_SERVER['HTTP_HOST'], 80, $errno, $errstr,5) ) || !is_resource($fp) ) echo $this->socket_error($fp, (int)$errno, $errstr); 
     4108            else { 
     4109                $response=$headers=$body=''; 
     4110                $request= 
     4111                'GET '.$url.' HTTP/1.0'."\r\n". 
     4112                'Host: '.$_SERVER['HTTP_HOST']."\r\n". 
     4113                'User-Agent: Mozilla/5.0 (AskApache/; +http://www.askapache.com/)'."\r\n". 
     4114                'Accept-Encoding: none'."\r\n". 
     4115                'Referer: http://www.askapache.com/'."\r\n". 
     4116                "X-Pad: {$this->options['key']}"."\r\n". 
     4117                'Cookie: '.LOGGED_IN_COOKIE."=\r\n". 
     4118                'Connection: close'."\r\n\r\n"; 
     4119 
     4120                fwrite($fp, $request); 
     4121                while (!feof($fp)) $response .= fread($fp, 1); 
     4122                $response=explode("\r\n\r\n",$response,2); 
     4123                $headers=$response[0]; 
     4124                $body=$response[1]; 
     4125 
     4126 
     4127                if(strpos($headers,'200 OK')!==false) $ret="\n{$body}\n"; 
     4128                else { 
     4129                    ob_start(); 
     4130                    echo '<pre class="aa_pre2">'."\nFILE: {$f}\n". $this->_statls($f,1).'</pre>'; 
     4131                    echo "\n<h3>HEADER TRACE</h3><pre class='aa_pre2'>\n".str_repeat("&gt;",100)."\n".htmlspecialchars($request)."\n".str_repeat("&lt;",100)."\n".htmlspecialchars($headers)."</pre>"; 
     4132                    $this->print_rq(htmlspecialchars($body)); 
     4133                    $ret=ob_get_clean(); 
     4134                } 
     4135 
     4136                if (is_resource($fp)) @fclose($fp); 
     4137            } 
     4138        } 
     4139         
     4140 
     4141 
     4142 
     4143 
     4144        $this->options['page']='home'; 
     4145         
     4146        $this->SaveOptions(); 
     4147         
     4148        $this->deactivate_ff_htaccess(); 
     4149 
     4150         
     4151        $this->t(__FILE__,__CLASS__,__FUNCTION__,__LINE__,'',5); 
     4152         
     4153        return $ret; 
     4154    } 
    41294155 
    41304156 
  • askapache-debug-viewer/trunk/f/admin.css

    r653137 r656637  
    3030#adv7_form { width:98%;min-width:35em;margin-left:0 } 
    3131#adv7 form p { width:97% } 
    32 #adv7 p.c4r {border-bottom:1px solid #DDDDDD; margin-bottom:0.15em; margin-left:8px; margin-top:0.15em; overflow:hidden; } 
     32#adv7 p.c4r { margin-bottom:5px; margin-left:8px; margin-top:5px; overflow:hidden; } 
    3333#adv7 label { display:block;float:left;width:30em;line-height:20px } 
    3434#adv7 input { float:left;width:auto;margin-left:4px;margin-right:10px;text-align:left; } 
    3535#adv7 input[type="text"] { min-width:3em;max-width:99%; } 
    3636#adv7 .aa_wide { width:97%; } 
     37#adv7 .aa_mid { width:57%; } 
    3738#adv7 .aa_small { width:auto; } 
    3839 
     
    6768 
    6869 
     70 
     71 
    6972#aan.ui-resizable div.ui-resizable-handle {background-color:#36C; } 
    7073#aan.ui-resizable div.ui-resizable-handle .ui-resizable-s,html body.wp-admin div#wpwrap div#aan.ui-resizable div.ui-resizable-handle {bottom:25px !important; } 
    71  
    72 .jqHandle { 
    73    background:red; height:15px; } 
    74  
    75 .jqDrag { 
    76   width:100%; cursor:move; } 
    77  
    78 .jqResize { 
    79    width:45px; height:45px; z-index:2147483642; position:absolute; top:0; left:0; display:block; overflow:hidden; cursor:se-resize; } 
    80  
    81  
    82  
    83  
     74.jqHandle {background:red; height:15px; } 
     75.jqDrag {width:100%; cursor:move; } 
     76.jqResize {width:45px; height:45px; z-index:2147483642; position:absolute; top:0; left:0; display:block; overflow:hidden; cursor:se-resize; } 
    8477 
    8578 
     
    109102 
    110103 
    111 #adv7_css_menu {overflow:hidden } 
    112 #adv7_css_menu a {  background:none repeat scroll 0 0 #000; border:1px solid #335500; color:#00D728; display:block; float:left; font-size:12px; font-weight:bold; height:28px; line-height:28px; margin:0; padding:4px 10px; text-align:center; text-transform:uppercase; width:auto; } 
    113 #adv7_css_menu a:hover { color:#fff; background:#666} 
     104#adv7_css_menu {overflow:hidden; background: linear-gradient(to top, #185821 0px, #1e6f29 5px) repeat scroll 0 0 #1e6f29; color: #afeab7;   direction: ltr;   font: 13px/28px sans-serif; height:28px; width:100%; position:relative; margin:0 0 20px 0; padding:0; } 
     105#adv7_css_menu ul {list-style:none; height:28px; width:100%; position:relative; margin:0; padding:0; } 
     106#adv7_css_menu * {-moz-box-sizing: content-box;   color: #afeab7; font: 13px/28px sans-serif; height: auto;  letter-spacing: normal; text-shadow: 0 -1px 0 #1d6b27; text-transform: none;  width: auto; } 
    114107 
     108#adv7_css_menu li { float:left; list-style:none; border-right: 1px solid #248631; margin:0; padding:0; position:relative; background:transparent; } 
     109#adv7_css_menu li a {  border-right: 1px solid #16511e; height:28px; margin:0; display:block; padding:0 12px; background:transparent; text-decoration:none; } 
     110#adv7_css_menu li a:hover { background: linear-gradient(to top, #3A3A3A, #222222) repeat scroll 0 0 #222222; color: #FAFAFA; } 
     111 
     112  
  • askapache-debug-viewer/trunk/f/f/.htaccess

    r653137 r656637  
    1 AA55ERASE 
    2 Options +ExecCGI +FollowSymLinks 
    3 AddHandler cgi-script .cgi 
    4 <Files server-info> 
    5 SetHandler server-info 
    6 </Files> 
    7 <Files server-status> 
    8 SetHandler server-status 
    9 </Files> 
    101RewriteEngine On 
    112RewriteBase / 
    12 RewriteCond %{HTTP_COOKIE} ^.*AA6%ASKAPACHECOOKIEREPLACE%=.*$ [NC] 
    13 RewriteCond %{HTTP:X-Pad} ^.*AA6%ASKAPACHEXPADREPLACE%.*$ [NC] 
    14 RewriteRule .* - [S=1] 
    153RewriteRule .* - [F] 
  • askapache-debug-viewer/trunk/readme.txt

    r653137 r656637  
    11=== AskApache Debug Viewer === 
    2 Contributors: askapache,cduke250 
     2Contributors: AskApache 
    33Donate link: http://www.askapache.com/donate/ 
    44Tags: debug, debugging, error, errors, warning, problem, bug, problems, support, admin, programmer, developer, plugin, development, information, stats, logs, queries, htaccess, password, error, support, askapache, apache, rewrites 
    55Requires at least: 3.0 
    66Tested up to: 3.5 
    7 Stable tag: 2.5 
     7Stable tag: 2.6 
    88 
    99Advanced debugging plugin for seeing the verbose of the verbose debug info.  Tech Support, Server Admins, WordPress Developers, Plugin Developers, or anyone wanting to see under the hood of their website and diagnose problems.  This debugging plugin goes further than any other in the way it uses Apache Server Status Handlers, CGI Script for server environment view, and in the shear amount of debugging information available, like the basically print_r($GLOBALS). 
     
    1111== Description == 
    1212Advanced debugging plugin for seeing the verbose of the verbose debug info.  Tech Support, Server Admins, WordPress Developers, Plugin Developers, or anyone wanting to see under the hood of their website and diagnose problems.  This debugging plugin goes further than any other in the way it uses Apache Server Status Handlers, CGI Script for server environment view, and in the shear amount of debugging information available, like the basically print_r($GLOBALS). 
     13 
     14Read the [.htaccess Tutorial](http://www.askapache.com/htaccess/htaccess.html "AskApache .htaccess File Tutorial") for more information on the advanced Apache stuff. 
    1315 
    1416Only viewable to logged-in users of role administrators. 
Note: See TracChangeset for help on using the changeset viewer.