<?php

// Charger le fichier .env en brut
$envContent = file_get_contents('/etc/vcard/.env');

// Séparer les lignes et les convertir en tableau associatif
$env = [];
foreach (explode("\n", $envContent) as $line) {
    $line = trim($line);
    // Ignorer les lignes vides ou les commentaires
    if ($line && $line[0] !== '#') {
        list($key, $value) = explode('=', $line, 2);
        $env[trim($key)] = trim($value);
    }
}

// Récupérer les données de connexion à la base de données
$host = $env['DB_HOST'] ?? null;
$dbname = $env['DB_NAME'] ?? null;
$username = $env['DB_USER'] ?? null;
$password = $env['DB_PASS'] ?? null;

// Récupération de l'URL demandée
$request_uri = trim($_SERVER['REQUEST_URI'], '/');

// Vérifie si l'URL contient ?vcard=XXXX et redirige vers /XXXX
if (isset($_GET['vcard']) && preg_match('/^\d+$/', $_GET['vcard'])) {
    $vcard = $_GET['vcard'];

    // Vérifie si l'URL n'est pas déjà propre (évite les boucles infinies)
    if ($request_uri !== $vcard) {
        header("Location: /$vcard", true, 301);
        exit;
    }
}

// Vérifie que l'URL actuelle est bien un numéro de vCard
if (!preg_match('/^\d+$/', $request_uri)) {
    include("Page404/404.html");
    exit;
}

// Connexion à la base de données
try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Récupérer les données de la vCard
    $stmt = $pdo->prepare("SELECT * FROM Infovcard WHERE id = :vcard");
    $stmt->bindParam(':vcard', $request_uri, PDO::PARAM_INT);
    $stmt->execute();
    $data = $stmt->fetch(PDO::FETCH_ASSOC);

    // Si la vCard existe dans la base de données, inclure le template
    if ($data) {
	$template = $data['Template']; // Récupérer le nom du fichier template
        $templatePath = "HTML/" . basename($template); // Sécuriser le chemin

	if (file_exists($templatePath)) {
            include($templatePath);
        } else {
            include("Page404/404.html");
        }
    }
} catch (PDOException $e) {
    echo "Erreur de connexion : " . $e->getMessage();
}
?>
