'Non identifié — veuillez vous connecter.']); exit; } if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); echo json_encode(['error' => 'Méthode non autorisée']); exit; } $data = json_decode(file_get_contents('php://input'), true) ?? []; $texte = trim((string) ($data['texte'] ?? '')); $texteNormalise = trim((string) ($data['texteNormalise'] ?? '')); if ($texte === '') { http_response_code(400); echo json_encode(['error' => 'Rien à enregistrer']); exit; } try { $pdo = getDbConnection(); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Connexion base de données impossible']); exit; } // DCT_Texte est un TEXT (pas de contrainte de longueur pratique, contrairement // à CVX_Consigne dans ASP_ConsignesVoix qui est un varchar(200)) : la dictée // brute est conservée intégralement, sans troncature — un énoncé sur les // contacts (nom, profession, ville, téléphone...) peut être plus long qu'une // simple consigne de tâche. try { $stmt = $pdo->prepare( 'INSERT INTO ASP_DicteesTest (DCT_Texte, DCT_Utilisateur, DCT_TexteNormalise) VALUES (?, ?, ?)' ); $stmt->execute([$texte, $_SESSION['USR_Code'], $texteNormalise !== '' ? $texteNormalise : null]); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]); exit; } echo json_encode(['success' => true]);