Salut,
je sais que la gestion du cache pose probleme avec les rewritesrules mais
independament de l'endroit ou cette fonction doit etre appelée, certains
points m'interpelent :
la fonction generer_nom_fichier_cache est appelée 2 fois : 1 fois sans
contexte, une fois avec contexte ET $fond, mais $fond est également passé
dans le contexte.
Ca fait penser à une fonction qui voudrait faire 2 choses differentes ...
en general, il vaut mieux dans ce genre de cas avoir 2 fonctions et
regrouper le tronc commun dans une 3eme fonction, appelée par les 2
premieres ou s'arranger pour avoir le meme type d'appel (ici, ca serait
supprimmer $fond de l'appel et le faire passer systematiquement dans le
contexte).
Ca, c'est du detail, mais bon, tant qu'on a les mains dedans ....
Beaucoup plus genant à mon avis :
// Cas des POST sur une meme adresse : ne pas melanger (desuet?)
if (!empty($HTTP_POST_VARS)) $fichier_cache .= '.'.@getmypid();
$fichier_cache .= '.'.substr($md_cache, 1, 8);
La, je ne suis pas sur de bien comprendre, mais en gros, si il y a des
variables en POST, on essaye de faire un cache non réutilisé, c'est bien ca
?
Le probleme, c'est que getmypid n'est pas unique.
Si le but est de faire un cache (pour rentrer dans le fonctionnement normal)
qui ne doit jamais etre repris, la methode ne me semble pas très sure et il
se pourrait qu'un cache ressorte (le numero de processus etant réattribué)
la ou il ne devrait pas.
Quel est le probleme à utiliser le meme systeme que pour les variables du
contexte, du genre (non testé) :
foreach ($HTTP_POST_VARS as $var=>$val) $chaine_post.='&'.$var.'='.$val;
$md_post = md5($chaine_post);
$fichier_cache .= '.'.substr($md_post, 1, 8);
(quoi que je ne sois pas sur que ce sous ensemble du MD5 non garantisse bien
la correspondance avec le contenu du POST ...)
J'ai raté un episode et je suis à coté de la plaque ou est-ce que ce que je
raconte n'est totalement idiot ?
@++