ID invalide."; exit; } if (empty($_SESSION['csrf_token'])) $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); $CSRF = $_SESSION['csrf_token']; function h($s){ return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); } function percent_from_5($n){ $n=max(0,min(5,(float)$n)); return (int)round($n/5*100); } function pseudo_from($prenom,$nom){ $p = trim((string)$prenom); $n = trim((string)$nom); $p = $p!=='' ? mb_convert_case($p, MB_CASE_TITLE, 'UTF-8') : 'Client'; $i = $n!=='' ? mb_strtoupper(mb_substr($nom,0,1,'UTF-8'),'UTF-8') : ''; return $i ? ($p.'.'.$i) : $p; } // Titre + stats $pp = $pdo->prepare("SELECT titre, prenom, nom FROM praticien WHERE id=?"); $pp->execute([$praticien_id]); $pr = $pp->fetch(PDO::FETCH_ASSOC); if (!$pr) { echo "