Lot 1 : purge de bateaux.php (modèle CM4), Date_derniere_maj alimentée par l'archivage, URL du QR code via URL_SITE, cookie de session corrigé

This commit is contained in:
2026-10-03 10:53:17 +00:00
parent ef52f433d2
commit 7146bce248
7 changed files with 133 additions and 2734 deletions
+22
View File
@@ -469,6 +469,28 @@ function Executer_sql_base($nom_base, $sql)
return ['ok' => true];
}
// ----------------------------------------------------------------------------
// Met à jour TB_Bateaux.Date_derniere_maj après le chargement RÉUSSI d'une
// archive (synthèse §47) : date-heure UTC de génération de l'archive par le
// CM5, lue dans son nom (<MAC>_AAMMJJ_HHMMSS_<empreinte>.sql.gz.enc) - c'est
// elle qui date réellement les données, pas la date de réception (§44.6).
// GREATEST : une archive plus ancienne chargée tardivement (sortie de
// quarantaine, CM5 longtemps injoignable) ne fait jamais reculer la date.
// Renvoie true si la requête a abouti.
// ----------------------------------------------------------------------------
function Mettre_a_jour_derniere_archive($db_principale, $id_bateau, $nom_fichier)
{
if (!preg_match('/^[0-9A-Fa-f]{12}_(\d{2})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})_/', $nom_fichier, $m)) return false;
$date_archive = "20{$m[1]}-{$m[2]}-{$m[3]} {$m[4]}:{$m[5]}:{$m[6]}";
$requete = "UPDATE TB_Bateaux SET Date_derniere_maj = GREATEST(COALESCE(Date_derniere_maj, '1970-01-01 00:00:00'), ?) WHERE Cle_primaire=?";
$stmt = $db_principale->prepare($requete);
$stmt->bind_param('si', $date_archive, $id_bateau);
$ok = $stmt->execute();
$stmt->close();
return $ok;
}
// ----------------------------------------------------------------------------
// Détermine la liste des tables fragmentées (incrémentales) d'une base bateau,
// par la MÊME méthode que côté CM5 (SHOW TABLES LIKE 'TB_Mesures%' + TB_Historique,