!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16. PHP/5.4.16 

uname -a: Linux roko-bkp 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64 

uid=48(apache) gid=48(apache) groups=48(apache),1003(webmaster) 

Safe-mode: OFF (not secure)

/usr/share/phpMyAdmin/libraries/   drwxr-xr-x
Free 9.25 GB of 93.48 GB (9.9%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     RecentFavoriteTable.class.php (11.83 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Recent and Favorite table list handling
 *
 * @package PhpMyAdmin
 */

if (! defined('PHPMYADMIN')) {
    exit;
}

require_once 
'./libraries/Message.class.php';

/**
 * Handles the recently used and favorite tables.
 *
 * @TODO Change the release version in table pma_recent
 * (#recent in documentation)
 *
 * @package PhpMyAdmin
 */
class PMA_RecentFavoriteTable
{
    
/**
     * Reference to session variable containing recently used or favorite tables.
     *
     * @access private
     * @var array
     */
    
private $_tables;

    
/**
     * Defines type of action, Favorite or Recent table.
     *
     * @access private
     * @var string
     */
    
private $_tableType;

    
/**
     * PMA_RecentFavoriteTable instances.
     *
     * @access private
     * @var array
     */
    
private static $_instances = array();

    
/**
     * Creates a new instance of PMA_RecentFavoriteTable
     *
     * @param string $type the table type
     *
     * @access private
     */
    
private function __construct($type)
    {
        
$this->_tableType $type;
        
$server_id $GLOBALS['server'];
        if (! isset(
$_SESSION['tmpval'][$this->_tableType '_tables'][$server_id])
        ) {
            
$_SESSION['tmpval'][$this->_tableType '_tables'][$server_id]
                = 
$this->_getPmaTable() ? $this->getFromDb() : array();
        }
        
$this->_tables
            
=& $_SESSION['tmpval'][$this->_tableType '_tables'][$server_id];
    }

    
/**
     * Returns class instance.
     *
     * @param string $type the table type
     *
     * @return PMA_RecentFavoriteTable
     */
    
public static function getInstance($type)
    {
        if (! 
array_key_exists($typeself::$_instances)) {
            
self::$_instances[$type] = new PMA_RecentFavoriteTable($type);
        }
        return 
self::$_instances[$type];
    }

    
/**
     * Returns the recent/favorite tables array
     *
     * @return array
     */
    
public function getTables()
    {
        return 
$this->_tables;
    }

    
/**
     * Returns recently used tables or favorite from phpMyAdmin database.
     *
     * @return array
     */
    
public function getFromDb()
    {
        
// Read from phpMyAdmin database, if recent tables is not in session
        
$sql_query
            
" SELECT `tables` FROM " $this->_getPmaTable() .
            
" WHERE `username` = '" PMA_Util::sqlAddSlashes($GLOBALS['cfg']['Server']['user']) . "'";

        
$return = array();
        
$result PMA_queryAsControlUser($sql_queryfalse);
        if (
$result) {
            
$row $GLOBALS['dbi']->fetchArray($result);
            if (isset(
$row[0])) {
                
$return json_decode($row[0], true);
            }
        }
        return 
$return;
    }

    
/**
     * Save recent/favorite tables into phpMyAdmin database.
     *
     * @return true|PMA_Message
     */
    
public function saveToDb()
    {
        
$username $GLOBALS['cfg']['Server']['user'];
        
$sql_query
            
" REPLACE INTO " $this->_getPmaTable() . " (`username`, `tables`)" .
                
" VALUES ('" PMA_Util::sqlAddSlashes($username) . "', '"
                
PMA_Util::sqlAddSlashes(
                    
json_encode($this->_tables)
                ) . 
"')";

        
$success $GLOBALS['dbi']->tryQuery($sql_query$GLOBALS['controllink']);

        if (! 
$success) {
            
$error_msg '';
            switch (
$this->_tableType) {
            case 
'recent':
                
$error_msg __('Could not save recent table!');
                break;

            case 
'favorite':
                
$error_msg __('Could not save favorite table!');
                break;
            }
            
$message PMA_Message::error($error_msg);
            
$message->addMessage('<br /><br />');
            
$message->addMessage(
                
PMA_Message::rawError(
                    
$GLOBALS['dbi']->getError($GLOBALS['controllink'])
                )
            );
            return 
$message;
        }
        return 
true;
    }

    
/**
     * Trim recent.favorite table according to the
     * NumRecentTables/NumFavoriteTables configuration.
     *
     * @return boolean True if trimming occurred
     */
    
public function trim()
    {
        
$max max(
            
$GLOBALS['cfg']['Num' ucfirst($this->_tableType) . 'Tables'], 0
        
);
        
$trimming_occurred count($this->_tables) > $max;
        while (
count($this->_tables) > $max) {
            
array_pop($this->_tables);
        }
        return 
$trimming_occurred;
    }

    
/**
     * Return HTML ul.
     *
     * @return string
     */
    
public function getHtmlList()
    {
        
$html '';
        if (
count($this->_tables)) {
            if (
$this->_tableType == 'recent') {
                foreach (
$this->_tables as $table) {
                    
$html .= '<li class="warp_link">';
                    
$recent_params = array(
                        
'db'    => $table['db'],
                        
'table' => $table['table']
                    );
                    
$recent_url 'tbl_recent_favorite.php'
                        
PMA_URL_getCommon($recent_params);
                    
$html .= '<a href="' $recent_url '">`'
                          
htmlspecialchars($table['db']) . '`.`'
                          
htmlspecialchars($table['table']) . '`</a>';
                    
$html .= '</li>';
                }
            } else {
                foreach (
$this->_tables as $table) {
                    
$html .= '<li class="warp_link">';

                    
$html .= '<a class="ajax favorite_table_anchor" ';
                    
$fav_params = array(
                        
'db'              => $table['db'],
                        
'ajax_request'    => true,
                        
'favorite_table'  => $table['table'],
                        
'remove_favorite' => true
                    
);
                    
$fav_rm_url 'db_structure.php'
                        
PMA_URL_getCommon($fav_params);
                    
$html .= 'href="' $fav_rm_url
                        
'" title="' __("Remove from Favorites")
                        . 
'" data-favtargetn="'
                        
md5($table['db'] . "." $table['table'])
                        . 
'" >'
                        
PMA_Util::getIcon('b_favorite.png')
                        . 
'</a>';

                    
$fav_params = array(
                        
'db'    => $table['db'],
                        
'table' => $table['table']
                    );
                    
$table_url 'tbl_recent_favorite.php'
                        
PMA_URL_getCommon($fav_params);
                    
$html .= '<a href="' $table_url '">`'
                        
htmlspecialchars($table['db']) . '`.`'
                        
htmlspecialchars($table['table']) . '`</a>';
                    
$html .= '</li>';
                }
            }
        } else {
            
$html .= '<li class="warp_link">'
                  
. ($this->_tableType == 'recent'
                    
?__('There are no recent tables.')
                    :
__('There are no favorite tables.'))
                  . 
'</li>';
        }
        return 
$html;
    }

    
/**
     * Return HTML.
     *
     * @return string
     */
    
public function getHtml()
    {
        
$html  '<div class="drop_list">';
        if (
$this->_tableType == 'recent') {
            
$html .= '<span title="' __('Recent tables')
                . 
'" class="drop_button">'
                
__('Recent') . '</span><ul id="pma_recent_list">';
        } else {
            
$html .= '<span title="' __('Favorite tables')
                . 
'" class="drop_button">'
                
__('Favorites') . '</span><ul id="pma_favorite_list">';
        }
        
$html .= $this->getHtmlList();
        
$html .= '</ul></div>';
        return 
$html;
    }

    
/**
     * Add recently used or favorite tables.
     *
     * @param string $db    database name where the table is located
     * @param string $table table name
     *
     * @return true|PMA_Message True if success, PMA_Message if not
     */
    
public function add($db$table)
    {
        
// If table does not exist, do not add._getPmaTable()
        
if (! $GLOBALS['dbi']->getColumns($db$table)) {
            return 
true;
        }

        
$table_arr = array();
        
$table_arr['db'] = $db;
        
$table_arr['table'] = $table;

        
// add only if this is new table
        
if (! isset($this->_tables[0]) || $this->_tables[0] != $table_arr) {
            
array_unshift($this->_tables$table_arr);
            
$this->_tables array_merge(array_unique($this->_tablesSORT_REGULAR));
            
$this->trim();
            if (
$this->_getPmaTable()) {
                return 
$this->saveToDb();
            }
        }
        return 
true;
    }

    
/**
     * Removes recent/favorite tables that don't exist.
     *
     * @param string $db    database
     * @param string $table table
     *
     * @return boolean|PMA_Message True if invalid and removed, False if not invalid,
     *                            PMA_Message if error while removing
     */
    
public function removeIfInvalid($db$table)
    {
        foreach (
$this->_tables as $tbl) {
            if (
$tbl['db'] == $db && $tbl['table'] == $table) {
                
// TODO Figure out a better way to find the existence of a table
                
if (! $GLOBALS['dbi']->getColumns($tbl['db'], $tbl['table'])) {
                    return 
$this->remove($tbl['db'], $tbl['table']);
                }
            }
        }
        return 
false;
    }

    
/**
     * Remove favorite tables.
     *
     * @param string $db    database name where the table is located
     * @param string $table table name
     *
     * @return true|PMA_Message True if success, PMA_Message if not
     */
    
public function remove($db$table)
    {
        
$table_arr = array();
        
$table_arr['db'] = $db;
        
$table_arr['table'] = $table;
        foreach (
$this->_tables as $key => $value) {
            if (
$value['db'] == $db && $value['table'] == $table) {
                unset(
$this->_tables[$key]);
            }
        }
        if (
$this->_getPmaTable()) {
            return 
$this->saveToDb();
        }
        return 
true;
    }

    
/**
     * Generate Html for sync Favorite tables anchor. (from localStorage to pmadb)
     *
     * @return string
     */
    
public function getHtmlSyncFavoriteTables()
    {
        
$retval '';
        
$server_id $GLOBALS['server'];
        
// Not to show this once list is synchronized.
        
$is_synced = isset($_SESSION['tmpval']['favorites_synced'][$server_id]) ?
            
true false;
        if (!
$is_synced) {
            
$params  = array('ajax_request' => true'favorite_table' => true,
                
'sync_favorite_tables' => true);
            
$url     'db_structure.php' PMA_URL_getCommon($params);
            
$retval  '<a class="hide" id="sync_favorite_tables"';
            
$retval .= ' href="' $url '"></a>';
        }
        return 
$retval;
    }

    
/**
     * Generate Html to update recent tables.
     *
     * @return string html
     */
    
public static function getHtmlUpdateRecentTables()
    {
        
$params  = array('ajax_request' => true'recent_table' => true);
        
$url     'index.php' PMA_URL_getCommon($params);
        
$retval  '<a class="hide" id="update_recent_tables"';
        
$retval .= ' href="' $url '"></a>';
        return 
$retval;
    }

    
/**
     * Reutrn the name of the configuration storage table
     *
     * @return string pma table name
     */
    
private function _getPmaTable()
    {
        
$cfgRelation PMA_getRelationsParam();
        if (! empty(
$cfgRelation['db'])
            && ! empty(
$cfgRelation[$this->_tableType])
        ) {
            return 
PMA_Util::backquote($cfgRelation['db']) . "."
                
PMA_Util::backquote($cfgRelation[$this->_tableType]);
        }
        return 
null;
    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0042 ]--