!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: nginx/1.23.4. PHP/5.6.40-65+ubuntu20.04.1+deb.sury.org+1 

uname -a: Linux foro-restaurado-2 5.15.0-1040-oracle #46-Ubuntu SMP Fri Jul 14 21:47:21 UTC 2023
aarch64
 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

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


Viewing file:     Partition.php (7.17 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Library for extracting information about the partitions
 */

declare(strict_types=1);

namespace 
PhpMyAdmin;

use function 
array_values;

/**
 * base Partition Class
 */
class Partition extends SubPartition
{
    
/** @var string partition description */
    
protected $description;
    
/** @var SubPartition[] sub partitions */
    
protected $subPartitions = [];

    
/**
     * Loads data from the fetched row from information_schema.PARTITIONS
     *
     * @param array $row fetched row
     *
     * @return void
     */
    
protected function loadData(array $row)
    {
        
$this->name $row['PARTITION_NAME'];
        
$this->ordinal $row['PARTITION_ORDINAL_POSITION'];
        
$this->method $row['PARTITION_METHOD'];
        
$this->expression $row['PARTITION_EXPRESSION'];
        
$this->description $row['PARTITION_DESCRIPTION'];
        
// no sub partitions, load all data to this object
        
if (! empty($row['SUBPARTITION_NAME'])) {
            return;
        }

        
$this->loadCommonData($row);
    }

    
/**
     * Returns the partition description
     *
     * @return string partition description
     */
    
public function getDescription()
    {
        return 
$this->description;
    }

    
/**
     * Add a sub partition
     *
     * @param SubPartition $partition Sub partition
     *
     * @return void
     */
    
public function addSubPartition(SubPartition $partition)
    {
        
$this->subPartitions[] = $partition;
    }

    
/**
     * Whether there are sub partitions
     *
     * @return bool
     */
    
public function hasSubPartitions()
    {
        return ! empty(
$this->subPartitions);
    }

    
/**
     * Returns the number of data rows
     *
     * @return int number of rows
     */
    
public function getRows()
    {
        if (empty(
$this->subPartitions)) {
            return 
$this->rows;
        }

        
$rows 0;
        foreach (
$this->subPartitions as $subPartition) {
            
$rows += $subPartition->rows;
        }

        return 
$rows;
    }

    
/**
     * Returns the total data length
     *
     * @return int data length
     */
    
public function getDataLength()
    {
        if (empty(
$this->subPartitions)) {
            return 
$this->dataLength;
        }

        
$dataLength 0;
        foreach (
$this->subPartitions as $subPartition) {
            
$dataLength += $subPartition->dataLength;
        }

        return 
$dataLength;
    }

    
/**
     * Returns the total index length
     *
     * @return int index length
     */
    
public function getIndexLength()
    {
        if (empty(
$this->subPartitions)) {
            return 
$this->indexLength;
        }

        
$indexLength 0;
        foreach (
$this->subPartitions as $subPartition) {
            
$indexLength += $subPartition->indexLength;
        }

        return 
$indexLength;
    }

    
/**
     * Returns the list of sub partitions
     *
     * @return SubPartition[]
     */
    
public function getSubPartitions()
    {
        return 
$this->subPartitions;
    }

    
/**
     * Returns array of partitions for a specific db/table
     *
     * @param string $db    database name
     * @param string $table table name
     *
     * @return Partition[]
     *
     * @access public
     */
    
public static function getPartitions($db$table)
    {
        global 
$dbi;

        if (
self::havePartitioning()) {
            
$result $dbi->fetchResult(
                
'SELECT * FROM `information_schema`.`PARTITIONS`'
                
" WHERE `TABLE_SCHEMA` = '" $dbi->escapeString($db)
                . 
"' AND `TABLE_NAME` = '" $dbi->escapeString($table) . "'"
            
);
            if (
$result) {
                
$partitionMap = [];
                
/** @var array $row */
                
foreach ($result as $row) {
                    if (isset(
$partitionMap[$row['PARTITION_NAME']])) {
                        
$partition $partitionMap[$row['PARTITION_NAME']];
                    } else {
                        
$partition = new Partition($row);
                        
$partitionMap[$row['PARTITION_NAME']] = $partition;
                    }

                    if (empty(
$row['SUBPARTITION_NAME'])) {
                        continue;
                    }

                    
$parentPartition $partition;
                    
$partition = new SubPartition($row);
                    
$parentPartition->addSubPartition($partition);
                }

                return 
array_values($partitionMap);
            }

            return [];
        }

        return [];
    }

    
/**
     * returns array of partition names for a specific db/table
     *
     * @param string $db    database name
     * @param string $table table name
     *
     * @return array   of partition names
     *
     * @access public
     */
    
public static function getPartitionNames($db$table)
    {
        global 
$dbi;

        if (
self::havePartitioning()) {
            return 
$dbi->fetchResult(
                
'SELECT DISTINCT `PARTITION_NAME` FROM `information_schema`.`PARTITIONS`'
                
" WHERE `TABLE_SCHEMA` = '" $dbi->escapeString($db)
                . 
"' AND `TABLE_NAME` = '" $dbi->escapeString($table) . "'"
            
);
        }

        return [];
    }

    
/**
     * returns the partition method used by the table.
     *
     * @param string $db    database name
     * @param string $table table name
     *
     * @return string|null partition method
     */
    
public static function getPartitionMethod($db$table)
    {
        global 
$dbi;

        if (
self::havePartitioning()) {
            
$partition_method $dbi->fetchResult(
                
'SELECT `PARTITION_METHOD` FROM `information_schema`.`PARTITIONS`'
                
" WHERE `TABLE_SCHEMA` = '" $dbi->escapeString($db) . "'"
                
" AND `TABLE_NAME` = '" $dbi->escapeString($table) . "'"
                
' LIMIT 1'
            
);
            if (! empty(
$partition_method)) {
                return 
$partition_method[0];
            }
        }

        return 
null;
    }

    
/**
     * checks if MySQL server supports partitioning
     *
     * @return bool
     *
     * @static
     * @staticvar boolean $have_partitioning
     * @staticvar boolean $already_checked
     * @access public
     */
    
public static function havePartitioning()
    {
        global 
$dbi;

        static 
$have_partitioning false;
        static 
$already_checked false;

        if (! 
$already_checked) {
            if (
$dbi->getVersion() < 50600) {
                if (
$dbi->fetchValue(
                    
'SELECT @@have_partitioning;'
                
)) {
                    
$have_partitioning true;
                }
            } elseif (
$dbi->getVersion() >= 80000) {
                
$have_partitioning true;
            } else {
                
// see https://dev.mysql.com/doc/refman/5.6/en/partitioning.html
                
$plugins $dbi->fetchResult('SHOW PLUGINS');
                foreach (
$plugins as $value) {
                    if (
$value['Name'] === 'partition') {
                        
$have_partitioning true;
                        break;
                    }
                }
            }
            
$already_checked true;
        }

        return 
$have_partitioning;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by HackingTool | HackingTool | Generation time: 0.0047 ]--