[ 'url' => 'https://nicolas-photographe.fr', 'title' => 'Photographie', 'subtitle' => 'Découvrez mon univers photographique, des moments capturés avec passion', 'button_text' => 'Découvrir', 'background' => 'assets/images/photo-bg.jpg' ], 'portfolio' => [ 'url' => 'https://nicolasdurupt.com', 'title' => 'Portfolio', 'subtitle' => 'Explorez l'ensemble de mes travaux et projets professionnels', 'button_text' => 'Explorer', 'background' => 'assets/images/portfolio-bg.jpg' ] ]; // Détecter la langue du visiteur (exemple simple) $userLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? 'fr', 0, 2); // Traductions (exemple simple) $translations = [ 'fr' => [ 'photo_title' => 'Photographie', 'photo_subtitle' => 'Découvrez mon univers photographique, des moments capturés avec passion', 'photo_button' => 'Découvrir', 'portfolio_title' => 'Portfolio', 'portfolio_subtitle' => 'Explorez l'ensemble de mes travaux et projets professionnels', 'portfolio_button' => 'Explorer' ], 'en' => [ 'photo_title' => 'Photography', 'photo_subtitle' => 'Discover my photographic universe, moments captured with passion', 'photo_button' => 'Discover', 'portfolio_title' => 'Portfolio', 'portfolio_subtitle' => 'Explore all my work and professional projects', 'portfolio_button' => 'Explore' ] ]; // Utiliser la langue du visiteur ou le français par défaut $lang = isset($translations[$userLang]) ? $userLang : 'fr'; // Appliquer les traductions $sites['photo']['title'] = $translations[$lang]['photo_title']; $sites['photo']['subtitle'] = $translations[$lang]['photo_subtitle']; $sites['photo']['button_text'] = $translations[$lang]['photo_button']; $sites['portfolio']['title'] = $translations[$lang]['portfolio_title']; $sites['portfolio']['subtitle'] = $translations[$lang]['portfolio_subtitle']; $sites['portfolio']['button_text'] = $translations[$lang]['portfolio_button']; // Statistiques de visite (exemple simple) $visitFile = 'stats/visits.json'; $stats = []; if (file_exists($visitFile)) { $stats = json_decode(file_get_contents($visitFile), true); } // Incrémenter le compteur de visites $today = date('Y-m-d'); if (!isset($stats[$today])) { $stats[$today] = 0; } $stats[$today]++; // Enregistrer les statistiques if (!file_exists('stats')) { mkdir('stats', 0755, true); } file_put_contents($visitFile, json_encode($stats)); // Gestion des cookies pour mémoriser le choix précédent $lastChoice = $_COOKIE['last_choice'] ?? null; // Animation différente si c'est une visite répétée $animationClass = $lastChoice ? 'returning-visitor' : 'new-visitor'; // Fonction pour générer un token CSRF function generateCSRFToken() { if (!isset($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } return $_SESSION['csrf_token']; } // Démarrer la session pour le token CSRF session_start(); $csrfToken = generateCSRFToken(); // Détecter le type d'appareil pour optimiser l'affichage $isMobile = preg_match('/(android|iphone|ipad|ipod|blackberry|windows phone)/i', $_SERVER['HTTP_USER_AGENT']); $deviceClass = $isMobile ? 'mobile-device' : 'desktop-device'; // Préchargement des images en arrière-plan pour une expérience plus fluide $preloadImages = ''; // Nettoyer les données de sortie avant de les afficher function escapeHtml($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); } ?> Nicolas Durupt - Bienvenue