!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smabpro.picotech.app/public_html/vendor/aws/aws-sdk-php/src/DynamoDb/   drwxr-xr-x
Free 28.74 GB of 117.98 GB (24.36%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     StandardSessionConnection.php (4.46 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Aws\DynamoDb;

use 
Aws\DynamoDb\Exception\DynamoDbException;

/**
 * The standard connection performs the read and write operations to DynamoDB.
 */
class StandardSessionConnection implements SessionConnectionInterface
{
    use 
SessionConnectionConfigTrait;
    
    
/** @var DynamoDbClient The DynamoDB client */
    
protected $client;
    
    
/**
     * @param DynamoDbClient    $client DynamoDB client
     * @param array             $config Session handler config
     */
    
public function __construct(DynamoDbClient $client, array $config = [])
    {
        
$this->client $client;
        
$this->initConfig($config);
    }

    public function 
read($id)
    {
        
$item = [];
        try {
            
// Execute a GetItem command to retrieve the item.
            
$result $this->client->getItem([
                 
'TableName'      => $this->getTableName(),
                 
'Key'            => $this->formatKey($id),
                 
'ConsistentRead' => $this->isConsistentRead(),
             ]);

            
// Get the item values
            
$result = isset($result['Item']) ? $result['Item'] : [];
            foreach (
$result as $key => $value) {
                
$item[$key] = current($value);
            }
        } catch (
DynamoDbException $e) {
            
// Could not retrieve item, so return nothing.
        
}

        return 
$item;
    }

    public function 
write($id$data$isChanged)
    {
        
// Prepare the attributes
        
$expires time() + $this->getSessionLifetime();
        
$attributes = [
            
$this->getSessionLifetimeAttribute() => ['Value' => ['N' => (string) $expires]],
            
'lock' => ['Action' => 'DELETE'],
        ];
        if (
$isChanged) {
            if (
$data != '') {
                
$type $this->getDataAttributeType();
                if (
$type == 'binary') {
                    
$attributes[$this->getDataAttribute()] = ['Value' => ['B' => $data]];
                } else {
                    
$attributes[$this->getDataAttribute()] = ['Value' => ['S' => $data]];
                }

            } else {
                
$attributes[$this->getDataAttribute()] = ['Action' => 'DELETE'];
            }
        }

        
// Perform the UpdateItem command
        
try {
            return (bool) 
$this->client->updateItem([
                
'TableName'        => $this->getTableName(),
                
'Key'              => $this->formatKey($id),
                
'AttributeUpdates' => $attributes,
            ]);
        } catch (
DynamoDbException $e) {
            return 
$this->triggerError("Error writing session $id{$e->getMessage()}");
        }
    }

    public function 
delete($id)
    {
        try {
            return (bool) 
$this->client->deleteItem([
                
'TableName' => $this->getTableName(),
                
'Key'       => $this->formatKey($id),
            ]);
        } catch (
DynamoDbException $e) {
            return 
$this->triggerError("Error deleting session $id{$e->getMessage()}");
        }
    }

    public function 
deleteExpired()
    {
        
// Create a Scan iterator for finding expired session items
        
$scan $this->client->getPaginator('Scan', [
            
'TableName' => $this->getTableName(),
            
'AttributesToGet' => [$this->getHashKey()],
            
'ScanFilter' => [
                
$this->getSessionLifetimeAttribute() => [
                    
'ComparisonOperator' => 'LT',
                    
'AttributeValueList' => [['N' => (string) time()]],
                ],
                
'lock' => [
                    
'ComparisonOperator' => 'NULL',
                ]
            ],
        ]);

        
// Create a WriteRequestBatch for deleting the expired items
        
$batch = new WriteRequestBatch($this->client$this->getBatchConfig());

        
// Perform Scan and BatchWriteItem (delete) operations as needed
        
foreach ($scan->search('Items') as $item) {
            
$batch->delete(
                [
$this->getHashKey() => $item[$this->getHashKey()]],
                
$this->getTableName()
            );
        }

        
// Delete any remaining items that were not auto-flushed
        
$batch->flush();
    }

    
/**
     * @param string $key
     *
     * @return array
     */
    
protected function formatKey($key)
    {
        return [
$this->getHashKey() => ['S' => $key]];
    }

    
/**
     * @param string $error
     *
     * @return bool
     */
    
protected function triggerError($error)
    {
        
trigger_error($errorE_USER_WARNING);

        return 
false;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

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

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

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0044 ]--