News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Запрет bbcode в названии темы

Started by Saltus, October 30, 2011, 04:30:26 PM

Previous topic - Next topic

Saltus

Подскажите пожалуйста как запретить доступ bbcode в названии темы?

Заранее благодарен.

Saltus

Никто не знает как решить проблему?

inter

Quote from: Saltus on October 30, 2011, 04:30:26 PM
Подскажите пожалуйста как запретить доступ bbcode в названии темы?

Заранее благодарен.

дык в названии нет ббкода, ббкод только в сообщении работает  ???
Sorry for my English

Saltus


digger

Quote from: Saltus on December 17, 2011, 07:42:45 PM
Именно в названии.

Они ж не парсятся в названии, в чем проблема то?

Bugo

Чтобы автоматически убирать эти теги из заголовков, в нескольких файлах придется делать замены типа strip_tags(parse_bbc($переменная))...

inter

Quote from: Bugo on December 18, 2011, 07:43:45 AM
Чтобы автоматически убирать эти теги из заголовков, в нескольких файлах придется делать замены типа strip_tags(parse_bbc($переменная))...

preg_replace ... в файле Post.php
Sorry for my English

Saltus

Правильно ли я понял,

Quote$context['page_title'] = $txt[507] . ' - ' . strip_tags($context['preview_subject']);
заменяем и получается
$context['page_title'] = $txt[507] . ' - ' . preg_replace($context['preview_subject']);

Quoteif ($func['htmltrim'](strip_tags(parse_bbc($_POST['message'], false), '<img>')) === '')
заменяем и  получается
if ($func['htmltrim'](preg_replace(parse_bbc($_POST['message'], false), '<img>')) === '')


Quote$message = trim(un_htmlspecialchars(strip_tags(strtr(parse_bbc($message, false, $ID_MSG), array('<br />' => "\n", '</div>' => "\n", '</li>' => "\n", '&#91;' => '[', '&#93;' => ']')))));
заменяем и
$message = trim(un_htmlspecialchars(preg_replace(strtr(parse_bbc($message, false, $ID_MSG), array('<br />' => "\n", '</div>' => "\n", '</li>' => "\n", '&#91;' => '[', '&#93;' => ']')))));



Quote$message = trim(un_htmlspecialchars(strip_tags(strtr(parse_bbc($message, false), array('<br />' => "\n", '</div>' => "\n", '</li>' => "\n", '&#91;' => '[', '&#93;' => ']')))));

заменяем  и получается
$message = trim(un_htmlspecialchars(preg_replace(strtr(parse_bbc($message, false), array('<br />' => "\n", '</div>' => "\n", '</li>' => "\n", '&#91;' => '[', '&#93;' => ']')))));

Quoteif ($func['htmltrim'](strip_tags(parse_bbc($_POST['message'], false), '<img>')) === '')
заменяем

if ($func['htmltrim'](preg_replace(parse_bbc($_POST['message'], false), '<img>')) === '')

Это все замены strip_tags, которые находятся в файле Post.php

inter

#8
QuoteПравильно ли я понял,

Нет вы не поняли, не делайте то что написали выше, а то будет ошибка.

В функциях Post() и Post2() добавите перед первым попавшимся $_REQUEST['subject'] следующий код, а вообще, если не шарите, то не лезьте, а то дров наломаете.

Я в регулярках не особо шарю - вполне возможно, что здесь ошибка, код не тестировал:


$tags = 'b|i|size|color|center|quote|url|img';
$pattern = '#\[(' . $tags . ')=?(.*?)\](.+?)\[/\1\]#';
$replace = '';
$_REQUEST['subject'] = preg_replace($pattern, $replace, $_REQUEST['subject']);


Sorry for my English

Advertisement: