Как разрешить ВЕСЬ html

Автор Grin, 31 июля 2008, 04:44:40

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Grin

Помогите пожалуйста. Как разрешить все html коды? Вот например для вставки музыки:


<embed src="http://static.boomp3.com/player.swf?song=170x0bq2c_z" type="application/x-shockwave-flash" wmode="transparent" width="200" height="20" allowScriptAccess="always" align="middle"></embed><a style="font-size: 9px; color: #ccc; letter-spacing: -1px; text-decoration: none" target="_blank" href="http://boomp3.com/listen/170x0bq2c_z/panacea-live-silo">boomp3.com</a>


Искал везде, и на .орг и тут через поиск, ничего не нашел.

Grin

Вот кстати нашел отрезок где разрешаются начальные теги, может поможет помочь=-)

         
// Take care of some HTML!
         if (!empty($modSettings['enablePostHTML']) && strpos($data, '&lt;') !== false)
         {
            $data = preg_replace('~&lt;a\s+href=(?:&quot;)?((?:http://|ftp://|https://|ftps://|mailto:).+?)(?:&quot;)?&gt;~i', '', $data);
            $data = preg_replace('~&lt;/a&gt;~i', '
', $data);

            // <br /> should be empty.
            $empty_tags = array('br', 'hr');
            foreach ($empty_tags as $tag)
               $data = str_replace(array('&lt;' . $tag . '&gt;', '&lt;' . $tag . '/&gt;', '&lt;' . $tag . ' /&gt;'), '[' . $tag . ' /]', $data);

            // b, u, i, s, pre... basic tags.
            $closable_tags = array('b', 'u', 'i', 's', 'em', 'ins', 'del', 'pre', 'blockquote');
            foreach ($closable_tags as $tag)
            {
               $diff = substr_count($data, '&lt;' . $tag . '&gt;') - substr_count($data, '&lt;/' . $tag . '&gt;');
               $data = strtr($data, array('&lt;' . $tag . '&gt;' => '<' . $tag . '>', '&lt;/' . $tag . '&gt;' => '</' . $tag . '>'));

               if ($diff > 0)
                  $data .= str_repeat('</' . $tag . '>', $diff);
            }

            // Do <img ... /> - with security... action= -> action-.
            preg_match_all('~&lt;img\s+src=(?:&quot;)?((?:http://|ftp://|https://|ftps://).+?)(?:&quot;)?(?:\s+alt=(?:&quot;)?(.*?)(?:&quot;)?)?(?:\s?/)?&gt;~i', $data, $matches, PREG_PATTERN_ORDER);
            if (!empty($matches[0]))
            {
               $replaces = array();
               foreach ($matches[1] as $match => $imgtag)
               {
                  // No alt?
                  if (!isset($matches[2][$match]))
                     $matches[2][$match] = '';

                  // Remove action= from the URL - no funny business, now.
                  if (preg_match('~action(=|%3d)(?!dlattach)~i', $imgtag) != 0)
                     $imgtag = preg_replace('~action(=|%3d)(?!dlattach)~i', 'action-', $imgtag);

                  // Check if the image is larger than allowed.
                  if (!empty($modSettings['max_image_width']) && !empty($modSettings['max_image_height']))
                  {
                     list ($width, $height) = url_image_size($imgtag);

                     if (!empty($modSettings['max_image_width']) && $width > $modSettings['max_image_width'])
                     {
                        $height = (int) (($modSettings['max_image_width'] * $height) / $width);
                        $width = $modSettings['max_image_width'];
                     }

                     if (!empty($modSettings['max_image_height']) && $height > $modSettings['max_image_height'])
                     {
                        $width = (int) (($modSettings['max_image_height'] * $width) / $height);
                        $height = $modSettings['max_image_height'];
                     }

                     // Set the new image tag.
                     $replaces[$matches[0][$match]] = '<img src="' . $imgtag . '" width="' . $width . '" height="' . $height . '" alt="' . $matches[2][$match] . '" border="0" />';
                  }
                  else
                     $replaces[$matches[0][$match]] = '<img src="' . $imgtag . '" alt="' . $matches[2][$match] . '" border="0" />';
               }

               $data = strtr($data, $replaces);
            }
         }

Mavn

При использовании html у вас могут возникнуть проблемы с безопасностью так что не советовал бы делать это!!!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Grin

Мне очень нужно разрешение html, безопасность не очень важна по сравнению с этим. Или как хотябы добавить теги.

garin

и что, никто не знает? тоже очень надо.

CiQ

Легче использовать Custom BBCode
Создать bbc (например fullhtml) где:
тип: [tag]content[/tag]
The HTML used for the tag: {content}
clear

Fedaykin

Кстати, дело то не только в безопасности. Представьте юзер воткнет лишнюю </tr> например...

garin

Цитата: Fedaykin от 02 февраля 2009, 12:19:11
Кстати, дело то не только в безопасности. Представьте юзер воткнет лишнюю </tr> например...

не могу представить, пойду попробую.

Fedaykin

Если разрешен весь HTML и воткнуть какойнить лишний табличный тег весь шаблон разлетится на куски. Но что-бы попробовать надо ещё их разрешить умудриться -)))) 

CiQ

Я написал уже как разрешить
clear