diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3 index dbaad0ba9402ae043792944e849dfaa27261d5d5..265ae3cc11a50072f8c65031880824dfde2b5403 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) => '“', + chr(148) => '”', + chr(150) => '-', + chr(151) => '-', + chr(133) => '...' + ); + $trans['utf-8'] = array( + chr(194).chr(146) => "'", + chr(194).chr(180) => "'", + chr(194).chr(147) => '“', + chr(194).chr(148) => '”', + 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) => '“', - chr(148) => '”', - chr(150) => '-', - chr(151) => '-', - chr(133) => '...' - ); - $trans['utf-8'] = array( - chr(194).chr(146) => "'", - chr(194).chr(180) => "'", - chr(194).chr(147) => '“', - chr(194).chr(148) => '”', - 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 100fa10390dded7f74768d28fc3404f5c4a51737..f8a89fe685f15ab06c85e4810c4ea0018b2dd6e0 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