diff --git a/core/core.php b/core/core.php index 56da5cf..1e11fbf 100644 --- a/core/core.php +++ b/core/core.php @@ -626,43 +626,47 @@ class common * Écrit les données dans un fichier avec plusieurs tentatives d'écriture et verrouillage * * @param string $filename Le nom du fichier - * @param string $data Les données à écrire dans le fichier + * @param array $data Les données à écrire dans le fichier * @param int $flags Les drapeaux optionnels à passer à la fonction $this->secure_file_put_contents * @return bool True si l'écriture a réussi, sinon false */ function secure_file_put_contents($filename, $data, $flags = 0) { + // Convertit les données en chaîne de caractères + $serialized_data = serialize($data); + // Vérifie si le fichier existe if (!file_exists($filename)) { // Crée le fichier s'il n'existe pas $handle = fopen($filename, 'w'); fclose($handle); } - + // Initialise le compteur de tentatives $attempts = 0; - + // Vérifie la longueur des données - $data_length = strlen($data); - + $data_length = strlen($serialized_data); + // Effectue jusqu'à 5 tentatives d'écriture while ($attempts < 5) { // Essaye d'écrire les données dans le fichier avec verrouillage exclusif - $write_result = file_put_contents($filename, $data, LOCK_EX | $flags); - + $write_result = file_put_contents($filename, $serialized_data, LOCK_EX | $flags); + // Vérifie si l'écriture a réussi if ($write_result !== false && $write_result === $data_length) { // Sort de la boucle si l'écriture a réussi return true; } - + // Incrémente le compteur de tentatives $attempts++; } - + // Échec de l'écriture après plusieurs tentatives return false; } + public function initDB($module, $path = '')