mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 16:07:10 +00:00
V1.010 préparation de la création d'une banque de dictées
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
/**
|
||||
* ASPIC — dictees_test.php
|
||||
*
|
||||
* Outil de mise au point interne (3 septembre 2026, demande de Jean-Marc) —
|
||||
* PAS un endpoint destiné aux futurs utilisateurs. Reçoit, sans aucune
|
||||
* interprétation, chaque énoncé capté par micro_test.js (branché
|
||||
* temporairement sur le micro de l'écran de fond — voir le commentaire
|
||||
* d'en-tête de ce fichier et celui d'ecran_fond.html) et l'enregistre tel
|
||||
* quel dans ASP_DicteesTest — y compris les essais ratés, jamais filtrés ni
|
||||
* supprimables depuis l'écran (décision explicite de Jean-Marc : un post-it
|
||||
* raté fera aussi partie de la vraie vie des futurs utilisateurs, la banque
|
||||
* de tests doit en tenir compte dès maintenant plutôt que de ne garder que
|
||||
* les essais réussis).
|
||||
*
|
||||
* Objectif : accumuler un corpus réel de dictées sur le thème "Gestion des
|
||||
* Contacts" — valeur par défaut de DCT_Theme, posée directement en base
|
||||
* (DEFAULT 'Gestion des Contacts'), volontairement pas reprise ici pour ne
|
||||
* pas dupliquer une valeur qui doit rester pilotée par la table — en vue de
|
||||
* concevoir plus tard les règles d'interprétation du pilotage vocal (voir
|
||||
* réflexions stratégiques).
|
||||
*
|
||||
* POST uniquement, corps JSON : { "texte": "..." } — un seul énoncé par
|
||||
* appel (contrairement à agent_notes.php qui reçoit un lot de lignes d'une
|
||||
* notation complète, ici chaque énoncé segmenté par le moteur de
|
||||
* reconnaissance du navigateur est envoyé et enregistré immédiatement).
|
||||
*
|
||||
* Session utilisateur : accès réservé aux utilisateurs identifiés, même
|
||||
* principe que les autres endpoints (agent_notes.php, todolist.php...).
|
||||
*/
|
||||
|
||||
session_start();
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
require __DIR__ . '/db.php';
|
||||
|
||||
if (empty($_SESSION['USR_Code'])) {
|
||||
http_response_code(401);
|
||||
echo json_encode(['error' => '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'] ?? ''));
|
||||
|
||||
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) VALUES (?, ?)'
|
||||
);
|
||||
$stmt->execute([$texte, $_SESSION['USR_Code']]);
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]);
|
||||
exit;
|
||||
}
|
||||
|
||||
echo json_encode(['success' => true]);
|
||||
Reference in New Issue
Block a user