V1.011 Tests de dictées vocales

This commit is contained in:
2026-09-04 06:39:55 +00:00
parent fc5ea2d5ba
commit 2a7d257563
6 changed files with 405 additions and 16 deletions
+19 -2
View File
@@ -27,6 +27,22 @@
*
* Session utilisateur : accès réservé aux utilisateurs identifiés, même
* principe que les autres endpoints (agent_notes.php, todolist.php...).
*
* Ajout du 3 septembre 2026 (soir) — "mode adresse" de micro_test.js : le
* corps JSON peut porter en plus un champ optionnel "texteNormalise"
* (résultat du dictionnaire de conversion point/tiret/arobase appliqué
* côté client sur une adresse mail/URL dictée). Stocké dans une colonne
* séparée, DCT_TexteNormalise, JAMAIS à la place de DCT_Texte qui reste le
* texte brut tel que rendu par le moteur de reconnaissance — voir le
* commentaire d'en-tête de micro_test.js. NULL pour toutes les lignes hors
* "mode adresse", comme avant ce jour.
*
* ⚠️ Nécessite d'avoir ajouté la colonne en base avant déploiement :
* ALTER TABLE ASP_DicteesTest
* ADD COLUMN DCT_TexteNormalise VARCHAR(255) NULL DEFAULT NULL
* AFTER DCT_Texte;
* (modification de schéma à faire par Jean-Marc lui-même, comme toujours —
* voir réflexions stratégiques / journal sur ce point.)
*/
session_start();
@@ -47,6 +63,7 @@ if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
$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);
@@ -69,9 +86,9 @@ try {
// simple consigne de tâche.
try {
$stmt = $pdo->prepare(
'INSERT INTO ASP_DicteesTest (DCT_Texte, DCT_Utilisateur) VALUES (?, ?)'
'INSERT INTO ASP_DicteesTest (DCT_Texte, DCT_Utilisateur, DCT_TexteNormalise) VALUES (?, ?, ?)'
);
$stmt->execute([$texte, $_SESSION['USR_Code']]);
$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()]);