403Webshell
Server IP : 213.255.246.8  /  Your IP : 216.73.217.138
Web Server : Apache
System : Linux dublin.stapolin.com 5.14.0-362.18.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jan 29 07:05:48 EST 2024 x86_64
User : stapolin ( 1019)
PHP Version : 8.4.24
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/stapolin/public_html/tracking.stapolin.com/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/stapolin/public_html/tracking.stapolin.com/includes/helpers.php
<?php

declare(strict_types=1);

function config_value(string $key, mixed $default = null): mixed
{
    global $config;
    $value = $config;
    foreach (explode('.', $key) as $segment) {
        if (!is_array($value) || !array_key_exists($segment, $value)) {
            return $default;
        }
        $value = $value[$segment];
    }
    return $value;
}

function app_url(string $path = ''): string
{
    $base = rtrim((string) config_value('app_url', ''), '/');
    return $base . '/' . ltrim($path, '/');
}

function redirect(string $path): never
{
    header('Location: ' . app_url($path));
    exit;
}

function e(mixed $value): string
{
    return htmlspecialchars((string) $value, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
}

function random_token(int $bytes = 32): string
{
    return bin2hex(random_bytes($bytes));
}

function public_id(string $prefix): string
{
    return $prefix . '_' . rtrim(strtr(base64_encode(random_bytes(18)), '+/', '-_'), '=');
}

function utc_now(): string
{
    return gmdate('Y-m-d H:i:s');
}

function client_ip(): string
{
    $ip = $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';
    return filter_var($ip, FILTER_VALIDATE_IP) ? $ip : '0.0.0.0';
}

function flash(string $type, string $message): void
{
    $_SESSION['flash'][] = ['type' => $type, 'message' => $message];
}

function flashes(): array
{
    $messages = $_SESSION['flash'] ?? [];
    unset($_SESSION['flash']);
    return $messages;
}

function require_installed(): void
{
    if (!is_file(APP_ROOT . '/storage/installed.lock')) {
        redirect('install/');
    }
}

function require_not_installed(): void
{
    if (is_file(APP_ROOT . '/storage/installed.lock')) {
        http_response_code(403);
        exit('Installer is locked. Remove storage/installed.lock manually to reinstall.');
    }
}

function audit_log(?int $userId, string $action, ?int $websiteId = null, array $details = []): void
{
    try {
        db_execute(
            'INSERT INTO audit_logs (user_id, website_id, action, ip_address, details_json, created_at) VALUES (?, ?, ?, ?, ?, ?)',
            'iissss',
            [$userId, $websiteId, $action, client_ip(), json_encode($details, JSON_THROW_ON_ERROR), utc_now()]
        );
    } catch (Throwable $exception) {
        error_log('Audit log failed: ' . $exception->getMessage());
    }
}

function get_system_setting(string $key): ?string
{
    $row = db_fetch_one('SELECT setting_value FROM system_settings WHERE setting_key = ?', 's', [$key]);
    if ($row === null || $row['setting_value'] === '') {
        return null;
    }
    return (string) $row['setting_value'];
}

function set_system_setting(string $key, string $value): void
{
    db_execute(
        'INSERT INTO system_settings (setting_key, setting_value, updated_at) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value), updated_at = VALUES(updated_at)',
        'sss',
        [$key, $value, utc_now()]
    );
}

Youez - 2016 - github.com/yon3zu
LinuXploit