Corrige un soucis de Overflow 32 bits

This commit is contained in:
voxan committed 2026-10-21 22:16:42 +02:00
1 parent 3f142a5388
commit 0c8d9cba6d
1 file changed
+14 -11
+14 -11
View File
@@ -10,24 +10,24 @@
* une tache cron/systemd timer sur le serveur.
*
* Regle de securite appliquee ici :
* - Pas de shell_exec()/exec()/proc_open() sur une entree utilisateur.
* - Pas de mot de passe DB affiche : on reference une variable
* d'environnement ou un fichier .my.cnf externe.
* - Seule action en base : enregistrement de metadonnees de sauvegarde
* (date, taille, note) dans une table de suivi, jamais le contenu.
* - Pas de shell_exec()/exec()/proc_open() sur une entree utilisateur.
* - Pas de mot de passe DB affiche : on reference une variable
* d'environnement ou un fichier .my.cnf externe.
* - Seule action en base : enregistrement de metadonnees de sauvegarde
* (date, taille, note) dans une table de suivi, jamais le contenu.
*
* CORRIGE (20/09/2026, suite a erreur 500 en usage reel) :
* - require_once _nav.php manquait, provoquant une erreur fatale
* "Call to undefined function render_admin_nav()".
* - La table backup_log necessaire a cette page n'existait pas :
* voir admin/sql/migration_add_missing_tables.sql.
* - require_once _nav.php manquait, provoquant une erreur fatale
* "Call to undefined function render_admin_nav()".
* - La table backup_log necessaire a cette page n'existait pas :
* voir admin/sql/migration_add_missing_tables.sql.
*
* Corrige suite a l'audit du 20/09/2026 : le detail technique des
* exceptions n'est plus affiche a l'ecran ; il est journalise via
* error_log().
*
* Hypothese de schema : backup_log(id, created_at, admin_username,
* label, note, size_bytes_reported)
* label, note, size_bytes_reported)
*/
declare(strict_types=1);
@@ -54,7 +54,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
} else {
$label = trim((string)($_POST['label'] ?? ''));
$note = trim((string)($_POST['note'] ?? ''));
$sizeBytes = filter_input(INPUT_POST, 'size_bytes', FILTER_VALIDATE_INT) ?: null;
// Correction : Accepte les grands nombres (BigInt) pour les gros backups
$rawSize = $_POST['size_bytes'] ?? '';
$sizeBytes = (ctype_digit((string)$rawSize)) ? $rawSize : null;
if ($label === '') {
$feedback = 'Le libelle de la sauvegarde est obligatoire.';