From c0638b7fd872f50de1b7f3329cdd2ce361a55ead Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Thu, 24 Mar 2005 20:54:34 +0000
Subject: [PATCH] =?UTF-8?q?appliquer=20corriger=5Fcaracteres()=20sur=20les?=
 =?UTF-8?q?=20posts=20des=20forums=20au=20moment=20o=C3=B9=20on=20les=20en?=
 =?UTF-8?q?registre=20dans=20la=20base=20+=20il=20n'est=20pas=20interdit?=
 =?UTF-8?q?=20de=20coder=20proprement?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc_filtres.php3 | 68 ++++++++++++++++++++++-------------------
 inc-messforum.php3      | 13 ++++----
 2 files changed, 44 insertions(+), 37 deletions(-)

diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3
index dbaad0ba94..265ae3cc11 100644
--- a/ecrire/inc_filtres.php3
+++ b/ecrire/inc_filtres.php3
@@ -54,6 +54,43 @@ function supprimer_caracteres_illegaux($texte) {
 	return strtr($texte, $from, $to);
 }
 
+// Corrige les caracteres degoutants utilises par les Windozeries
+function corriger_caracteres_windows($texte) {
+	static $trans;
+	if (!$trans) {
+		// 145,146,180 = simple quote ; 147,148 = double quote ; 150,151 = tiret long
+		$trans['iso-8859-1'] = array(
+			chr(146) => "'",
+			chr(180) => "'",
+			chr(147) => '&#8220;',
+			chr(148) => '&#8221;',
+			chr(150) => '-',
+			chr(151) => '-',
+			chr(133) => '...'
+		);
+		$trans['utf-8'] = array(
+			chr(194).chr(146) => "'",
+			chr(194).chr(180) => "'",
+			chr(194).chr(147) => '&#8220;',
+			chr(194).chr(148) => '&#8221;',
+			chr(194).chr(150) => '-',
+			chr(194).chr(151) => '-',
+			chr(194).chr(133) => '...'
+		);
+	}
+	$charset = lire_meta('charset');
+	if (!$trans[$charset]) return $texte;
+	return strtr($texte, $trans[$charset]);
+}
+
+// Supprimer caracteres windows et les caracteres de controle ILLEGAUX
+function corriger_caracteres ($texte) {
+	$texte = corriger_caracteres_windows($texte);
+	$texte = supprimer_caracteres_illegaux($texte);
+	return $texte;
+}
+
+
 // Nettoyer les backend
 function texte_backend($texte) {
 
@@ -146,37 +183,6 @@ function http_href_img($href, $img, $att, $title='', $style='', $class='', $evt=
 	return  http_href($href, http_img_pack($img, $title, $att), $title, $style, $class, $evt);
 }
 
-// Corrige les caracteres degoutants utilises par les Windozeries
-function corriger_caracteres($texte) {
-	static $trans;
-	if (!$trans) {
-		// 145,146,180 = simple quote ; 147,148 = double quote ; 150,151 = tiret long
-		$trans['iso-8859-1'] = array(
-			chr(146) => "'",
-			chr(180) => "'",
-			chr(147) => '&#8220;',
-			chr(148) => '&#8221;',
-			chr(150) => '-',
-			chr(151) => '-',
-			chr(133) => '...'
-		);
-		$trans['utf-8'] = array(
-			chr(194).chr(146) => "'",
-			chr(194).chr(180) => "'",
-			chr(194).chr(147) => '&#8220;',
-			chr(194).chr(148) => '&#8221;',
-			chr(194).chr(150) => '-',
-			chr(194).chr(151) => '-',
-			chr(194).chr(133) => '...'
-		);
-	}
-
-	$texte = supprimer_caracteres_illegaux($texte);
-
-	$charset = lire_meta('charset');
-	if (!$trans[$charset]) return $texte;
-	return strtr($texte, $trans[$charset]);
-}
 
 // Transformer les sauts de paragraphe en simples passages a la ligne
 function PtoBR($texte){
diff --git a/inc-messforum.php3 b/inc-messforum.php3
index 100fa10390..f8a89fe685 100644
--- a/inc-messforum.php3
+++ b/inc-messforum.php3
@@ -13,6 +13,7 @@
 
 include_ecrire('inc_meta.php3');
 include_ecrire('inc_forum.php3');
+include_ecrire('inc_filtres.php3');
 include_ecrire("inc_abstract_sql.php3");
 include_local(_FILE_CONNECT);
 
@@ -173,12 +174,12 @@ function enregistre_forum() {
 	id_auteur = $id_auteur,
 	id_thread = $id_thread,
 	date_heure = NOW(),
-	titre = '".addslashes($titre)."',
-	texte = '".addslashes($texte)."',
-	nom_site = '".addslashes($nom_site_forum)."',
-	url_site = '".addslashes($url_site)."',
-	auteur = '".addslashes($auteur)."',
-	email_auteur = '".addslashes($email_auteur)."',
+	titre = '".addslashes(corriger_caracteres($titre))."',
+	texte = '".addslashes(corriger_caracteres($texte))."',
+	nom_site = '".addslashes(corriger_caracteres($nom_site_forum))."',
+	url_site = '".addslashes(corriger_caracteres($url_site))."',
+	auteur = '".addslashes(corriger_caracteres($auteur))."',
+	email_auteur = '".addslashes(corriger_caracteres($email_auteur))."',
 	ip = '$REMOTE_ADDR',
 	statut = '$statut'
 	WHERE id_forum = $id_message
-- 
GitLab