From abbf62f80d8dc571adc85112dcc67d93473a5642 Mon Sep 17 00:00:00 2001
From: Antoine Pitrou <pitrou@free.fr>
Date: Tue, 5 Mar 2002 22:24:54 +0000
Subject: [PATCH] =?UTF-8?q?Nouvelle=20m=C3=A9thode=20de=20cr=C3=A9ation=20?=
 =?UTF-8?q?du=20nom=20de=20fichier=20cache=20(limit=C3=A9=20=C3=A0=2031=20?=
 =?UTF-8?q?caract=C3=A8res)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc-public.php3 | 34 ++++++++++++----------------------
 1 file changed, 12 insertions(+), 22 deletions(-)

diff --git a/inc-public.php3 b/inc-public.php3
index 40bdb5942d..d62296649f 100644
--- a/inc-public.php3
+++ b/inc-public.php3
@@ -21,32 +21,22 @@ if ($ajout_forum) {
 $fichier_requete = $REQUEST_URI;
 $fichier_requete = strtr($fichier_requete, '?', '&');
 $fichier_requete = eregi_replace('&(submit|valider|(var_[^=&]*)|recalcul)=[^&]*', '', $fichier_requete);
+$fichier_requete = ereg_replace('^/+', '', $fichier_requete);
 
-$fichier_cache = substr(rawurlencode($fichier_requete), 0, 128);
-$sousrep_cache = substr(md5($fichier_cache), 0, 1);
+$md_cache = md5($fichier_requete);
 
-if (creer_repertoire("CACHE", $sousrep_cache))
-	$fichier_cache = "$sousrep_cache/$fichier_cache";
+$fichier_cache = ereg_replace('\.[a-zA-Z0-9]*', '', $fichier_requete);
+$fichier_cache = ereg_replace('&[^&]+=([^&]+)', '&\1', $fichier_cache);
+$fichier_cache = rawurlencode(strtr($fichier_cache, '/&-', '--_'));
+if (strlen($fichier_cache) > 24)
+	$fichier_cache = substr(ereg_replace('([a-zA-Z]{0,3})[^-]*-', '\1-', $fichier_cache), -24);
+$fichier_cache .= '.'.substr($md_cache, 1, 6);
 
-/*if (!file_exists("CACHE/.plat") AND !file_exists("CACHE/$sousrep_cache")) {
-	@mkdir("CACHE/$sousrep_cache", 0777);
-	@chmod("CACHE/$sousrep_cache", 0777);
-	$ok = false;
-	if ($f = @fopen("CACHE/$sousrep_cache/.test", "w")) {
-		@fputs($f, '<?php $ok = true; ?'.'>');
-		@fclose($f);
-		include("CACHE/$sousrep_cache/.test");
-	}
-	if (!$ok) {
-		$f = fopen("CACHE/.plat", "w");
-		fclose($f);
-	}
-}
+$subdir_cache = substr($md_cache, 0, 1);
+
+if (creer_repertoire("CACHE", $subdir_cache))
+	$fichier_cache = "$subdir_cache/$fichier_cache";
 
-if (!file_exists("CACHE/.plat")) {
-	$fichier_cache = "$sousrep_cache/$fichier_cache";
-}
-*/
 $chemin_cache = "CACHE/$fichier_cache";
 
 
-- 
GitLab