From c1f0dad937b0da40ed20bcff1b9a4c5d6da14fb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Wed, 18 Aug 2010 20:56:46 +0200 Subject: [PATCH] Un peu plus de gestion d'erreurs... Il faut vraiement que je m'occupe de toutes les erreurs possibles... --- __cms__/code/securite/erreur.php | 7 ++++++- __cms__/code/stockage/stockage.php | 4 +++- __cms__/code/stockage/systeme-fichiers.php | 9 ++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/__cms__/code/securite/erreur.php b/__cms__/code/securite/erreur.php index 85ffa52..812e0b0 100644 --- a/__cms__/code/securite/erreur.php +++ b/__cms__/code/securite/erreur.php @@ -31,7 +31,12 @@ class Erreur { return new self("lecture", $message); } - public function __construct($type, $message, $string = "[ debug : erreur de lecture ]") { + public static function écriture($message) { + return new self("écriture", $message); + } + + public function __construct($type, $message, $string = null) { + if (is_null($string)) $string = "[ debug : erreur de " . $type . " ]"; $this->type = $type; $this->message = $message; $this->string = $string; diff --git a/__cms__/code/stockage/stockage.php b/__cms__/code/stockage/stockage.php index 86ce1a6..84a4243 100644 --- a/__cms__/code/stockage/stockage.php +++ b/__cms__/code/stockage/stockage.php @@ -11,7 +11,9 @@ class Stockage { $enfant = $chemin->enfant($nom); Système_fichiers::créer_dossier($enfant->get_fs_stockage()); self::set_prop($enfant, "type", $type); - self::activer_réécriture($enfant); + $e = self::activer_réécriture($enfant); + if (Erreur::is_erreur($e)) return Erreur::fatale("Erreur lors de la mise en place de la redirection pour " . $enfant->get() . ".", $e); + exit; return $enfant; } else { return false; diff --git a/__cms__/code/stockage/systeme-fichiers.php b/__cms__/code/stockage/systeme-fichiers.php index c10d1c7..90d4dfb 100644 --- a/__cms__/code/stockage/systeme-fichiers.php +++ b/__cms__/code/stockage/systeme-fichiers.php @@ -5,8 +5,9 @@ class Système_fichiers { public static function créer_dossier($chemin_fs) { $d = dirname($chemin_fs); - if (!is_dir($d)) self::créer_dossier($d); - if (!is_dir($chemin_fs)) mkdir($chemin_fs); + $r = true; + if (!is_dir($d)) $r = self::créer_dossier($d); + if (!is_dir($chemin_fs)) return $r && mkdir($chemin_fs); } /*public static function créer_fichier($chemin_fs) { @@ -33,7 +34,9 @@ class Système_fichiers { public static function écrire($chemin_fs, $données) { $d = dirname($chemin_fs); - if (!is_dir($d)) self::créer_dossier($d); + if (!is_dir($d) || self::créer_dossier($d)) { + return Erreur::écriture("Impossible d'écrire dans $chemin_fs : le dossier $d n'existe pas"); + } return file_put_contents($chemin_fs, $données); }