J'ai regardé le code du module inc_meta de la version 1.7 mais cela ne
résout pas le problème puisque lorsqu'il manque de la place l'erreur ne se
produit pas au moment de l'ouverture du fichier mais au moment de
l'écriture.
J'ai mis en place sur la version 1.6 de mon site un code qui consiste à
réécrire le fichier sur lui-même en le maintenant à une longueur fixe (j'ai
pris arbitrairement 7400) . On pourrait faire différemment en agrandissant
le string à écrire uniquement s'il est plus court que le fichier en cours.
Voici le code tel qu'il tourne sur mon site :
$lb = 7400 - strlen($s);
$s .= "/*".sprintf("%".$lb."s","*/\n".'?'.'>');
$fnom = ($flag_ecrire ? "" : "ecrire/") . "data/inc_meta_cache.php3";
$lfic = @filesize($fnom);
if ($lfic) { $f = @fopen($fnom,"r+b"); rewind($f); }
else { $f = @fopen($fnom,"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 {
Ce code fonctionne apparemment correctement pour le moment. Mais il a un
effet de bord que je m'explique d'autant moins qu'il se produit sur mon site
mais pas sur mon PC sous Easyphp.
L'affichage de l'administration du site (configuration.php3) se bloque avant
la fin de l'entête après l'affichage de "interface complète"
Maurice Frankel
configuration[1].txt (12 KB)