!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/apex_led/php/3ros/simplesamlphp/modules/core/lib/Storage/   drwxrwxr-x
Free 11.55 GB of 61.93 GB (18.65%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     SQLPermanentStorage.php (6.14 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * SQLPermanentStorage
 * 
 * Generic SQL Store to store key value pairs. To be used in several other modules that needs
 * to store data permanently.
 *
 * @author Andreas Åkre Solberg <andreas@uninett.no>, UNINETT AS.
 * @package simpleSAMLphp
 * @version $Id: SQLPermanentStorage.php 2231 2010-03-23 05:17:56Z andreassolberg $
 */
class sspmod_core_Storage_SQLPermanentStorage {
    
    private 
$db;
    
    function 
__construct($name$config NULL) {
        if (
is_null($config))
            
$config SimpleSAML_Configuration::getInstance();
        
        
$datadir $config->getPathValue('datadir''data/');
        
        if (!
is_dir($datadir))
            throw new 
Exception('Data directory [' $datadir'] does not exist');
        if (!
is_writable($datadir))
            throw new 
Exception('Data directory [' $datadir'] is not writable');
        
        
$sqllitedir $datadir 'sqllite/';
        if (!
is_dir($sqllitedir)) {
            
mkdir($sqllitedir);
        }
        
        
$dbfile $sqllitedir $name '.sqllite';
        
        if (
$this->db = new SQLiteDatabase($dbfile)) {
            
$q = @$this->db->query('SELECT key1 FROM data LIMIT 1');
            if (
$q === false) {
                
$this->db->queryExec('
        CREATE TABLE data (
            key1 text, 
            key2 text,
            type text,
            value text,
            created timestamp,
            updated timestamp,
            expire timestamp,
            PRIMARY KEY (key1,key2,type)
        );
        '
);
            } 
        } else {
            throw new 
Exception('Error creating SQL lite database [' $dbfile '].');
        }
    }

    public function 
set($type$key1$key2$value$duration NULL) {
        if (
$this->exists($type$key1$key2)) {
            
$this->update($type$key1$key2$value$duration);
        } else {
            
$this->insert($type$key1$key2$value$duration);
        }
    }

    private function 
insert($type$key1$key2$value$duration NULL) {
        
        
$setDuration '';
        if (
is_null($duration)) {
            
$setDuration 'NULL';
        } else {
            
$setDuration "'" sqlite_escape_string(time() + $duration) . "'";
        }
        
        
$query "INSERT INTO data (key1,key2,type,created,updated,expire,value) VALUES (" 
            
"'" sqlite_escape_string($key1) . "'," 
            
"'" sqlite_escape_string($key2) . "'," 
            
"'" sqlite_escape_string($type) . "'," 
            
"'" sqlite_escape_string(time()) . "'," 
            
"'" sqlite_escape_string(time()) . "'," 
            
$setDuration "," .
            
"'" sqlite_escape_string(serialize($value)) . "')";
        
$results $this->db->queryExec($query);
        return 
$results;
    }
    
    private function 
update($type$key1$key2$value$duration NULL) {
        
        
$setDuration '';
        if (
is_null($duration)) {
            
$setDuration ", expire = NULL ";
        } else {
            
$setDuration ", expire = '" sqlite_escape_string(time() + $duration) . "' ";
        }
        
        
$query "UPDATE data SET " 
            
"updated = '" sqlite_escape_string(time()) . "'," 
            
"value = '" sqlite_escape_string(serialize($value)) . "'" .
            
$setDuration .
            
"WHERE " 
            
"key1 = '" sqlite_escape_string($key1) . "' AND " 
            
"key2 = '" sqlite_escape_string($key2) . "' AND " 
            
"type = '" sqlite_escape_string($type) . "'";
        
$results $this->db->queryExec($query);
        
# echo $query;
        # echo $this->db>changes;
        
return $results;
    }

    public function 
get($type NULL$key1 NULL$key2 NULL) {
        
        
$condition self::getCondition($type$key1$key2);
        
$query "SELECT * FROM data WHERE " $condition;
        
$results $this->db->arrayQuery($querySQLITE_ASSOC);
        
#        echo '<pre>type: ' . $type . ' key1:' . $key1 . '   ' . $query; print_r($results); exit;
        
        
if (count($results) !== 1) return NULL;
        
        
$res $results[0];
        
$res['value'] = unserialize($res['value']);
        return 
$res;
    }
    
    
/*
     * Return the value directly (not in a container)
     */
    
public function getValue($type NULL$key1 NULL$key2 NULL) {
        
$res $this->get($type$key1$key2);
        if (
$res === NULL) return NULL;
        return 
$res['value'];
    }
    
    public function 
exists($type$key1$key2) {
        
$query "SELECT * FROM data WHERE " 
            
"key1 = '" sqlite_escape_string($key1) . "' AND " 
            
"key2 = '" sqlite_escape_string($key2) . "' AND " 
            
"type = '" sqlite_escape_string($type) . "' LIMIT 1";
        
$results $this->db->arrayQuery($querySQLITE_ASSOC);
        return (
count($results) == 1);
    }
        
    public function 
getList($type NULL$key1 NULL$key2 NULL) {
        
        
$condition self::getCondition($type$key1$key2);
        
$query "SELECT * FROM data WHERE " $condition;
        
$results $this->db->arrayQuery($querySQLITE_ASSOC);
        if (
count($results) == 0) return NULL;
        
        foreach(
$results AS $key => $value) {
            
$results[$key]['value'] = unserialize($results[$key]['value']);
        }
        return 
$results;
    }
    
    public function 
getKeys($type NULL$key1 NULL$key2 NULL$whichKey 'type') {

        if (!
in_array($whichKey, array('key1''key2''type')))
            throw new 
Exception('Invalid key type');
            
        
$condition self::getCondition($type$key1$key2);
        
        
$query "SELECT DISTINCT " $whichKey " FROM data WHERE " $condition;
        
$results $this->db->arrayQuery($querySQLITE_ASSOC);

        if (
count($results) == 0) return NULL;
        
        
$resarray = array();
        foreach(
$results AS $key => $value) {
            
$resarray[] = $value[$whichKey];
        }
        
        return 
$resarray;
    }
    
    
    public function 
remove($type$key1$key2) {
        
$query "DELETE FROM data WHERE " 
            
"key1 = '" sqlite_escape_string($key1) . "' AND " 
            
"key2 = '" sqlite_escape_string($key2) . "' AND " 
            
"type = '" sqlite_escape_string($type) . "'";
        
$results $this->db->arrayQuery($querySQLITE_ASSOC);
        return (
count($results) == 1);
    }
    
    public function 
removeExpired() {
        
$query "DELETE FROM data WHERE expire NOT NULL AND expire < " time();
        
$this->db->arrayQuery($querySQLITE_ASSOC);
        
$changes $this->db->changes();
        return 
$changes;
    }
    
    
    
/**
     * Create a SQL condition statement based on parameters
     */
    
private static function getCondition($type NULL$key1 NULL$key2 NULL) {
        
$conditions = array();
        
        if (!
is_null($type)) $conditions[] = "type = '" sqlite_escape_string($type) . "'";
        if (!
is_null($key1)) $conditions[] = "key1 = '" sqlite_escape_string($key1) . "'";
        if (!
is_null($key2)) $conditions[] = "key2 = '" sqlite_escape_string($key2) . "'";
        
        if (
count($conditions) === 0) return '1';
        
        
$condition join(' AND '$conditions);
        
        return 
$condition;
    }
    
    
}


:: 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: 1.0567 ]--