[spip-dev] non écriture de inc_meta_cache.php3

Bonjour,

Il arrive que faute de place disque le fichier "inc_meta_cache.php3" ne soit
pas écrit correctement.
Cela se traduit ensuite par une erreur lors de sa relecture.

J'ai fait la modification suivante dans "inc_meta.php3" (1.5.2) :

Remplacement de :
$f = @fopen(($flag_ecrire ? "" : "ecrire/") . "inc_meta_cache.php3", "wb");

par :

$fnom = ($flag_ecrire ? "" : "ecrire/") . "inc_meta_cache.php3";
$lfic = @filesize($fnom);
if ($lfic) {
     $f = @fopen($fnom,"r+b");
     $sp = sprintf("%'".chr(0).$l."s","");
     fputs($f,$sp);
     rewind($f);
}
else {
     $f = @fopen($fnom,"wb");
}

J'aimerais avoir votre avis.

Merci.

Maurice Frankel
http://www.actionconsommation.org

Il arrive que faute de place disque le fichier "inc_meta_cache.php3" ne soit
pas écrit correctement.
Cela se traduit ensuite par une erreur lors de sa relecture.

J'ai fait la modification suivante dans "inc_meta.php3" (1.5.2) :

Ce problème a été corrigé dans la 1.6.

-- Fil

Ce problème existe toujours.
La modification que j'avais faite ne marchait pas dans tous les cas. J'ai dû
la supprimer.

Je ne vois pas de modification dans le module inc_meta.php3 de la 1.6

Comme cela arrive assez fréquemment sur mon site j'ai remplacé :

$f = @fopen(($flag_ecrire ? "" : "ecrire/") .
"data/inc_meta_cache.php3","wb");
if ($f) {
     fputs($f, $s);
     fclose($f);
} else {

par :

$f = @fopen(($flag_ecrire ? "" : "ecrire/") .
"data/inc_meta_cache.php3","wb");
if ($f) {
     $lgput = fputs($f, $s);
     fclose($f);
     if ($lgput != strlen($s)) {
          include("inc_mail.php3");
          $adresse_webm = lire_meta("email_webmaster");
          envoyer_mail($adresse_webm,"erreur inc_meta_cache","Erreur
d'écriture du fichier inc_meta_cache.php3");
     }
} else {

Cela a le mérite de m'avertir immédiatement dans l'attente d'une autre
solution.

Maurice Frankel