File Manager V1.5
FILE_CONTENT: db.php
<?php
require __DIR__ . '/vendor/autoload.php';
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
$host = 'gvitamb3.beget.tech';
$db = 'gvitamb3_dcarbas';
$user = 'gvitamb3_dcarbas';
$pass = 'Man363906';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
3 => 2,
8 => 2,
20 => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (PDOException $e) {
throw new PDOException($e->getMessage(), (int)$e->getCode());
}
/**
* Универсальная функция для получения токена из заголовков
* Поддерживает различные способы получения заголовка Authorization
* для совместимости с Android и веб-клиентами
*/
function getAuthToken() {
$token = null;
// Способ 1: Из HTTP_AUTHORIZATION (стандартный способ)
if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
$token = $_SERVER['HTTP_AUTHORIZATION'];
}
// Способ 2: Из REDIRECT_HTTP_AUTHORIZATION (если через mod_rewrite)
if (!$token && isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
$token = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
}
// Способ 3: Из getallheaders()
if (!$token) {
$headers = getallheaders();
if ($headers) {
if (isset($headers['Authorization'])) {
$token = $headers['Authorization'];
} elseif (isset($headers['authorization'])) {
$token = $headers['authorization'];
}
}
}
// Способ 4: Из apache_request_headers() (если доступно)
if (!$token && function_exists('apache_request_headers')) {
$headers = apache_request_headers();
if ($headers) {
if (isset($headers['Authorization'])) {
$token = $headers['Authorization'];
} elseif (isset($headers['authorization'])) {
$token = $headers['authorization'];
}
}
}
// Извлекаем токен из формата "Bearer <token>"
if ($token && preg_match('/Bearer\s+(.+)$/i', $token, $matches)) {
return trim($matches[1]);
}
return null;
}
function verifyToken($token) {
$secret_key = 'Niy8dbpV4WT90k/eXPrzOuZRvK7Jr44iASpBNpwqPug=';
try {
$decoded = JWT::decode($token, new Key($secret_key, 'HS256'));
return (array)$decoded;
} catch (Exception $e) {
error_log("Token verification failed: " . $e->getMessage());
return false;
}
}
function getPDO() {
global $pdo;
return $pdo;
}
?>[ KEMBALI ]