From 28e4c5eedee7813bc5d05847bc3a825ae62d1180 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Sat, 23 Dec 2006 15:48:33 +0000 Subject: [PATCH] regler le cas des appels < script language=php > --- ecrire/inc/texte.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index f4e134976a..01f3c86d85 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -157,6 +157,12 @@ function traiter_echap_frame_dist($regs) { // http://doc.spip.org/@traiter_echap_script_dist function traiter_echap_script_dist($regs) { + // rendre joli (et inactif) si c'est un script language=php + if (preg_match(',<script\b[^>]+php,ims', + $regs[0])) + return highlight_string($regs[0],true); + + // Cas normal : le script passe tel quel return $regs[0]; } @@ -402,12 +408,15 @@ function interdire_scripts($t) { // rien ? if (!$t OR !strstr($t, '<')) return $t; - // echapper les tags asp + // echapper les tags asp/php $t = str_replace('<'.'%', '<%', $t); // echapper le php $t = str_replace('<'.'?', '<?', $t); + // echapper le < script language=php > + $t = preg_replace(',<(script\b[^>]+\bphp\b),UimsS', '<\1', $t); + // Pour le js, trois modes : parano (-1), prive (0), ok (1) switch($GLOBALS['filtrer_javascript']) { case 0: @@ -434,7 +443,7 @@ function safehtml($t) { if (strpos($t,'<')===false) return str_replace("\x00", '', $t); - $t = interdire_scripts($t); + $t = interdire_scripts($t); // jolifier le php $t = echappe_js($t); if (!isset($safehtml)) @@ -442,7 +451,7 @@ function safehtml($t) { if ($safehtml) $t = $safehtml($t); - return interdire_scripts($t); # gere le < ?php > en plus + return interdire_scripts($t); // interdire le php (2 precautions) } // Correction typographique francaise -- GitLab