From 1dce831c56f71db946e0fe78c91a3b43ed3eeb44 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sun, 17 Jul 2005 21:10:25 +0000
Subject: [PATCH] =?UTF-8?q?Apr=C3=A8s=20un=20POST=20flinguer=20la=20page?=
 =?UTF-8?q?=20dans=20le=20cache=20(=C3=A7a=20autorise=20des=20balises=20dy?=
 =?UTF-8?q?namiques=20qui=20se=20modifient=20d'une=20fois=20=C3=A0=20l'aut?=
 =?UTF-8?q?re,=20sans=20avoir=20besoin=20d'invalideurs)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc-cache.php3 | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/inc-cache.php3 b/inc-cache.php3
index e27bae4b04..1ce2c8538d 100644
--- a/inc-cache.php3
+++ b/inc-cache.php3
@@ -198,20 +198,21 @@ function purger_squelettes() {
 
 // Determination du fichier cache (si besoin)
 function determiner_cache($delais, &$use_cache, &$chemin_cache) {
-	global $_POST;
+	global $_SERVER;
+
+	$post = ($_SERVER['REQUEST_METHOD'] == 'POST');
 
 	// Le fichier cache est-il valide ?
-	$use_cache = ($delais != 0 and !count($_POST));
-	if ($use_cache)	$use_cache = utiliser_cache($chemin_cache, $delais);
+	if ($delais<>0 AND !$post)
+		$use_cache = utiliser_cache($chemin_cache, $delais);
 
 	// Sinon, tester qu'on a la connexion a la base
 	if (!$use_cache) {
 		include_local(_FILE_CONNECT);
 		if (!$GLOBALS['db_ok']) {
 			if (@file_exists($chemin_cache)) 
-			  $use_cache = 1; // passer outre
-			else
-			  {
+				$use_cache = 1; // passer outre
+			else {
 				spip_log("Erreur base de donnees & "
 					. "impossible utiliser $chemin_cache");
 				if (!$GLOBALS['flag_preserver']) {
@@ -231,6 +232,13 @@ function determiner_cache($delais, &$use_cache, &$chemin_cache) {
 				define ('spip_interdire_cache', true);
 			  }
 		}
+
+		// En cas de POST (et si la connexion est ok) supprimer le cache
+		// histoire de faciliter la gestion de certaines balises dynamiques
+		else if ($post AND $chemin_cache) {
+			supprimer_fichier($chemin_cache);
+		}
+
 	}
 }
 
-- 
GitLab