'Non identifié — veuillez vous connecter.']); exit; } try { $pdo = getDbConnection(); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Connexion base de données impossible']); exit; } $method = $_SERVER['REQUEST_METHOD']; if ($method === 'GET') { try { $stmt = $pdo->query( 'SELECT AGN_Incr, AGN_Prenom, AGN_Fonction, AGN_Photo, AGN_Couleur, AGN_Identite FROM ASP_Agents ORDER BY AGN_OrdreAffichage ASC' ); echo json_encode(['collaborateurs' => $stmt->fetchAll()]); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]); } exit; } if ($method === 'PUT') { $data = json_decode(file_get_contents('php://input'), true) ?? []; $incr = (int) ($data['AGN_Incr'] ?? 0); // Champ volontairement libre, sans limite de longueur imposée ici // (MEDIUMTEXT côté base, voir en-tête) : une identité bien écrite peut // dépasser largement la taille d'un champ de fiche habituel (Nom, // Ville...) de ce projet, et grandira encore avec l'usage réel de // l'application — le seul garde-fou vit côté front-end (voir // TEXTE_IDENTITE_MAX_OCTETS/compteur-identite dans ecran_fond.html). $identite = trim((string) ($data['AGN_Identite'] ?? '')); if ($incr <= 0) { http_response_code(400); echo json_encode(['error' => 'AGN_Incr manquant ou invalide']); exit; } try { // Existence vérifiée par un SELECT séparé plutôt que sur rowCount() de // l'UPDATE (même précaution que contacts.php, section PUT — un texte // identique au texte déjà enregistré donnerait rowCount() = 0 alors // que le collaborateur existe bien). $verif = $pdo->prepare('SELECT AGN_Incr FROM ASP_Agents WHERE AGN_Incr = ?'); $verif->execute([$incr]); if (!$verif->fetch()) { http_response_code(404); echo json_encode(['error' => 'Collaborateur introuvable']); exit; } $stmt = $pdo->prepare('UPDATE ASP_Agents SET AGN_Identite = ? WHERE AGN_Incr = ?'); $stmt->execute([$identite !== '' ? $identite : null, $incr]); echo json_encode(['success' => true]); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]); } exit; } http_response_code(405); echo json_encode(['error' => 'Méthode non autorisée']);