Skip to content
Extraits de code Groupes Projets
Valider 6d14c42b rédigé par Fil's avatar Fil
Parcourir les fichiers

meilleure gestion lors des requetes HEAD : ne jamais calculer/recalculer, ne pas

inclure le fichier cache non plus...
parent 61f9ea83
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -41,29 +41,33 @@ function utiliser_cache($chemin_cache, $delais) { ...@@ -41,29 +41,33 @@ function utiliser_cache($chemin_cache, $delais) {
global $HTTP_SERVER_VARS, $HTTP_POST_VARS; global $HTTP_SERVER_VARS, $HTTP_POST_VARS;
global $lastmodified; global $lastmodified;
// a priori cache
$use_cache = true; $use_cache = true;
// si le cache existe, verifier sa date
if (file_exists($chemin_cache)) { if (file_exists($chemin_cache)) {
$t = filemtime($chemin_cache); $t = filemtime($chemin_cache);
$ledelais = time() - $t; $ledelais = time() - $t;
$use_cache &= ($ledelais < $delais AND $ledelais >= 0); $use_cache &= ($ledelais < $delais AND $ledelais >= 0);
// Inclusions multiples : derniere modification // Inclusions multiples : derniere modification
if ($lastmodified < $t) $lastmodified = $t; if ($lastmodified < $t) $lastmodified = $t;
} else
// Eviter de recalculer pour les moteurs de recherche, proxies...
if ($HTTP_SERVER_VARS['REQUEST_METHOD'] == 'HEAD') {
$use_cache = true;
}
}
else {
$use_cache = false; $use_cache = false;
}
// recalcul obligatoire
$use_cache &= ($GLOBALS['recalcul'] != 'oui'); $use_cache &= ($GLOBALS['recalcul'] != 'oui');
$use_cache &= empty($HTTP_POST_VARS); $use_cache &= empty($HTTP_POST_VARS);
// ne jamais recalculer pour les moteurs de recherche, proxies...
if ($HTTP_SERVER_VARS['REQUEST_METHOD'] == 'HEAD')
$use_cache = true;
// si pas de connexion, cache obligatoire
if (!$use_cache) { if (!$use_cache) {
include_ecrire("inc_connect.php3"); include_ecrire("inc_connect.php3");
if (!$GLOBALS['db_ok']) $use_cache = true; if (!$GLOBALS['db_ok']) $use_cache = true;
} }
return $use_cache; return $use_cache;
} }
......
...@@ -133,18 +133,20 @@ if ($var_recherche AND $flag_ob AND $flag_preg_replace AND !$flag_preserver AND ...@@ -133,18 +133,20 @@ if ($var_recherche AND $flag_ob AND $flag_preg_replace AND !$flag_preserver AND
// //
$effacer_cache = !$delais; // $delais peut etre modifie par une inclusion de squelette... $effacer_cache = !$delais; // $delais peut etre modifie par une inclusion de squelette...
if (file_exists($chemin_cache)) {
if (!$effacer_cache && !$flag_dynamique && $recalcul != 'oui') { if (!$effacer_cache && !$flag_dynamique && $recalcul != 'oui') {
if ($lastmodified) { if ($lastmodified) {
@Header ("Last-Modified: ".gmdate("D, d M Y H:i:s", $lastmodified)." GMT"); @Header ("Last-Modified: ".gmdate("D, d M Y H:i:s", $lastmodified)." GMT");
@Header ("Expires: ".gmdate("D, d M Y H:i:s", $lastmodified + $delais)." GMT"); @Header ("Expires: ".gmdate("D, d M Y H:i:s", $lastmodified + $delais)." GMT");
}
}
else {
@Header("Expires: 0");
@Header("Cache-Control: no-cache,must-revalidate");
@Header("Pragma: no-cache");
} }
}
else {
@Header("Expires: 0");
@Header("Cache-Control: no-cache,must-revalidate");
@Header("Pragma: no-cache");
}
if (file_exists($chemin_cache) && ($HTTP_SERVER_VARS['REQUEST_METHOD'] != 'HEAD')) {
include ($chemin_cache); include ($chemin_cache);
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter