HEX
Server: LiteSpeed
System: Linux s917.lon1.mysecurecloudhost.com 4.18.0-477.21.1.lve.1.el8.x86_64 #1 SMP Tue Sep 5 23:08:35 UTC 2023 x86_64
User: assibfaf (3034)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/assibfaf/assignmentghostwriter.com/prox-bootstrap.php
<?php
/**
 * @package    Proxim
 * @author     Davison Pro <davisonpro.coder@gmail.com | https://davisonpro.dev>
 * @copyright  2019 Proxim
 * @version    1.0.0
 * @since      File available since Release 1.0.0
 */

 // One minute to execute the script
@set_time_limit(300);

/* Improve PHP configuration to prevent issues */
ini_set('default_charset', 'utf-8');

@date_default_timezone_set(@date_default_timezone_get());

// Short name
define('PROX_DS', DIRECTORY_SEPARATOR);

// Modes
define('PROX_IS_CLI_MODE', 'cli' === PHP_SAPI);

// Common end-of-line
define('PROX_EOL', PROX_IS_CLI_MODE ? "\n" : '<br />');

define('PROX_NAMESPACE',          'Proxim');

define('PROX_DIR',                   dirname(__FILE__));
define('PROX_DIR_ROOT',              rtrim(PROX_DIR, PROX_DS) . PROX_DS);
define('PROX_DIR_CLASSES',            PROX_DIR_ROOT . 'prox-classes' . PROX_DS);
define('PROX_DIR_CONTROLLERS',        PROX_DIR_ROOT . 'prox-controllers' . PROX_DS);
define('PROX_DIR_CACHE',              PROX_DIR_ROOT . 'prox-cache' . PROX_DS);
define('PROX_DIR_MODULE',            PROX_DIR_ROOT . 'prox-modules' . PROX_DS);
define('PROX_DIR_TEMPLATES',          PROX_DIR_ROOT . 'prox-templates' . PROX_DS);
define('PROX_DIR_IMAGES',             PROX_DIR_ROOT . 'prox-images' . PROX_DS);
define('PROX_DIR_MAIL',               PROX_DIR_TEMPLATES . 'mail' . PROX_DS);

define('PROX_API_DOMAIN', 'proxim.craftyworks.co');
define('PROX_API_URL', 'https://' .PROX_API_DOMAIN );
define('PROX_UPDATES_URL', PROX_API_URL . '/releases/client');

define('PROX_OS_WINDOWS', 'WIN' === strtoupper(substr(PHP_OS, 0, 3)));
define('PROX_IS_PHP_7', version_compare(PHP_VERSION, '7.0.0', '>='));

if (!defined('PROX_MAGIC_QUOTES_GPC')) {
    define('PROX_MAGIC_QUOTES_GPC', false);
}

// check the config file
if(!file_exists(PROX_DIR_ROOT . 'prox-config.php')) {
    /* the config file doesn't exist -> start the installer */
    header('Location: /install');
}

if ( file_exists(PROX_DIR . PROX_DS . 'vendor' . PROX_DS . 'autoload.php') ) {
    require_once PROX_DIR . PROX_DS . 'vendor' . PROX_DS . 'autoload.php'; 
}

require_once PROX_DIR_ROOT . 'prox-autoload.php';
require_once PROX_DIR_ROOT . 'prox-globals.php'; 
require_once PROX_DIR_ROOT . 'prox-config.php';

require_once PROX_DIR_ROOT . 'prox-functions.php'; 

if (PROX_DEBUG) {
    error_reporting(E_ALL); 
    ini_set('display_errors', TRUE); 
    ini_set('display_startup_errors', TRUE);
    define('PROX_DEBUG_SQL', true);
} else {
    define('PROX_DEBUG_SQL', false);
}

use Proxim\Tools;
use Proxim\Validate;
use Proxim\Database\DbQuery;
use Proxim\Database\DbCore;
use Proxim\Database\DbPDOCore;
use Proxim\Database\DbMySQLiCore;

abstract class Db extends DbCore {};
class DbPDO extends DbPDOCore {};
class DbMySQLi extends DbMySQLiCore {};

/* set db time to UTC */
Db::getInstance()->query("SET time_zone = '+0:00'");

if (Tools::convertBytes(ini_get('upload_max_filesize')) < Tools::convertBytes('100M')) {
    ini_set('upload_max_filesize', '100M');
    ini_set('post_max_size', '100M');
}

// Define some $_SERVER variables like HTTP_HOST if PHP is launched with php-cli
if (Tools::isPHPCLI()) {
    if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST'])) {
        $_SERVER['HTTP_HOST'] = '';
    }
    if (!isset($_SERVER['SERVER_NAME']) || empty($_SERVER['SERVER_NAME'])) {
        $_SERVER['SERVER_NAME'] = '';
    }
    if (!isset($_SERVER['REMOTE_ADDR']) || empty($_SERVER['REMOTE_ADDR'])) {
        $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
    }
}

/* Redefine REQUEST_URI if empty (on some webservers...) */
if (!isset($_SERVER['REQUEST_URI']) || empty($_SERVER['REQUEST_URI'])) {
    if (!isset($_SERVER['SCRIPT_NAME']) && isset($_SERVER['SCRIPT_FILENAME'])) {
        $_SERVER['SCRIPT_NAME'] = $_SERVER['SCRIPT_FILENAME'];
    }
    if (isset($_SERVER['SCRIPT_NAME'])) {
        if (basename($_SERVER['SCRIPT_NAME']) == 'index.php' && empty($_SERVER['QUERY_STRING'])) {
            $_SERVER['REQUEST_URI'] = dirname($_SERVER['SCRIPT_NAME']).'/';
        } else {
            $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
            if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
                $_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
            }
        }
    }
}

/* Trying to redefine HTTP_HOST if empty (on some webservers...) */
if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST'])) {
    $_SERVER['HTTP_HOST'] = @getenv('HTTP_HOST');
}

use Proxim\Application;
use Proxim\Configuration;
use Proxim\Site\Site;
use Proxim\User\Customer;
use Proxim\Util\ArrayUtils;
use Proxim\Util\DateUtils;

$app = new Application([
    'mode' => PROX_ENVIRONMENT,
    'debug' => PROX_DEBUG
]);

# add extensions
$allowed_extensions = Configuration::get('ALLOWED_EXTENSIONS', PROX_ADMIN_SITE_ID);
if( $allowed_extensions ) {
    $extensions = explode(',', $allowed_extensions);
    $extensions = array_merge($extensions, $globals['extensions']);
    $globals['extensions'] = $extensions;
}

/* set system uploads */
if(Configuration::get('S3_ENABLED', PROX_ADMIN_SITE_ID)) {
    $s3_region = Configuration::get('S3_REGION', PROX_ADMIN_SITE_ID);
    $s3_bucket = Configuration::get('S3_BUCKET', PROX_ADMIN_SITE_ID);
    $endpoint = "https://s3.".$s3_region.".amazonaws.com/".$s3_bucket;
    $uploads_path = $endpoint . "/uploads";
} elseif (Configuration::get('DIGITALOCEAN_ENABLED', PROX_ADMIN_SITE_ID)) {
    $digitalocean_space_name = Configuration::get('DIGITALOCEAN_SPACE_NAME', PROX_ADMIN_SITE_ID);
    $digitalocean_space_region = Configuration::get('DIGITALOCEAN_SPACE_REGION', PROX_ADMIN_SITE_ID);
    $endpoint = "https://".$digitalocean_space_name.".".$digitalocean_space_region.".digitaloceanspaces.com";
    $uploads_path = $endpoint."/uploads";
} else {
    $uploads_path = $app->base_uri .'/uploads';
}

Configuration::set('UPLOADS_PATH', $uploads_path);

$cookie = $app->container->cookie;
$smarty = $app->container->smarty;

$ip_address = $app->request->getIp();
$cookie->ip_address = $ip_address;

$ip_address = $app->request->getIp();

if (
    !isset($cookie->country_code) || 
    $cookie->ip_address != $ip_address && 
    $ip_address != '127.0.0.1'
) {
    $cookie->ip_address = $ip_address;
    $ip_info = Tools::ipInfo($ip_address , true );
    if ( ArrayUtils::has($ip_info, 'country_code') ) {
        $cookie->country_code = ArrayUtils::get($ip_info, 'country_code');
    }
} 

if ( (int) $cookie->user_id) {
    $user = new Customer( (int) $cookie->user_id);

    if (Validate::isLoadedObject($user)) {
        $user->last_activity = DateUtils::now();
        $user->logged = 1;
        $user->update();
    } else {
        $cookie->logout();
    }
}

if (!isset($user) || !Validate::isLoadedObject($user)) {
    $user = new Customer();
}

if(!Configuration::get('PROX_VERSION')) {
    Configuration::updateValue('PROX_VERSION', Application::VERSION);
}

$smarty->assign([
    'user' => (array) $user,
    'siteName' => Configuration::get('SITE_NAME'),
    'siteEmail' => Configuration::get('SITE_EMAIL'),
    'system_version' => Configuration::get('PROX_VERSION'),
]);

$app->container->set('cookie', $cookie);
$app->container->set('user', $user);

$site = new Site( PROX_SITE_ID );
$app->container->set('site', $site);

// init affiliates system
$app->initAffiliates();