Index: /branches/version-2_12-dev/data/class/SC_CheckError.php
===================================================================
--- /branches/version-2_12-dev/data/class/SC_CheckError.php	(revision 21596)
+++ /branches/version-2_12-dev/data/class/SC_CheckError.php	(revision 21717)
@@ -58,23 +58,18 @@
         }
         $this->createParam($value);
-        // 含まれているタグを抽出する
-        preg_match_all("/<([\/]?[a-z]+)/", $this->arrParam[$value[1]], $arrTag);
-
-        foreach ($arrTag[1] as $val) {
-            $find = false;
-
-            foreach ($value[2] as $tag) {
-                $tag = preg_replace('/^\\//', '\/', $tag);
-                if (preg_match('/^' . $tag . "$/i", $val)) {
-                    $find = true;
-                    break;
-                }
-            }
-
-            if (!$find) {
-                $this->arrErr[$value[1]] = '※ ' . $value[0] . 'に許可されていないタグ[' . strtoupper($val) . ']が含まれています。<br />';
-                return;
-            }
-        }
+        // HTMLに含まれているタグを抽出する
+        preg_match_all('/<\/?([a-z]+)/i', $this->arrParam[$value[1]], $arrTagIncludedHtml);
+
+        $arrDiffTag = array_diff($arrTagIncludedHtml[1], $value[2]);
+
+        if (empty($arrDiffTag)) return;
+
+        // 少々荒っぽいが、表示用 HTML に変換する
+        foreach ($arrDiffTag as &$tag) {
+            $tag = '[' . htmlspecialchars($tag) . ']';
+        }
+        $html_diff_tag_list = implode(', ', $arrDiffTag);
+
+        $this->arrErr[$value[1]] = '※ ' . $value[0] . 'に許可されていないタグ ' . $html_diff_tag_list . ' が含まれています。<br />';
     }
 
