erreur secure_file_put_contents

This commit is contained in:
Fred Tempez 2024-04-09 18:58:22 +02:00
parent 8b72ae01dc
commit 0c94b2f546

View File

@ -626,12 +626,15 @@ class common
* Écrit les données dans un fichier avec plusieurs tentatives d'écriture et verrouillage * Écrit les données dans un fichier avec plusieurs tentatives d'écriture et verrouillage
* *
* @param string $filename Le nom du fichier * @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 * @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 * @return bool True si l'écriture a réussi, sinon false
*/ */
function secure_file_put_contents($filename, $data, $flags = 0) 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 // Vérifie si le fichier existe
if (!file_exists($filename)) { if (!file_exists($filename)) {
// Crée le fichier s'il n'existe pas // Crée le fichier s'il n'existe pas
@ -643,12 +646,12 @@ class common
$attempts = 0; $attempts = 0;
// Vérifie la longueur des données // Vérifie la longueur des données
$data_length = strlen($data); $data_length = strlen($serialized_data);
// Effectue jusqu'à 5 tentatives d'écriture // Effectue jusqu'à 5 tentatives d'écriture
while ($attempts < 5) { while ($attempts < 5) {
// Essaye d'écrire les données dans le fichier avec verrouillage exclusif // 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 // Vérifie si l'écriture a réussi
if ($write_result !== false && $write_result === $data_length) { if ($write_result !== false && $write_result === $data_length) {
@ -665,6 +668,7 @@ class common
} }
public function initDB($module, $path = '') public function initDB($module, $path = '')
{ {
// Instanciation de la classe des entrées / sorties // Instanciation de la classe des entrées / sorties