0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 4533 Просмотров
*

Allod

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Добрый день, Смарт. Записал видео, где демонстрируется баг на примере моего сайта. http://narod.ru/disk/44732417001.6070e9520c55d37ad60b1d8fe3904ebc/1.mp4.html

Как из него видно, правая колонка на сайте просто слетает вниз, если при цитировании не закрыть квадратную скобку.
С размером моей БД, Вы уже знакомы, так что представляете вероятность случайного или специального удаления этой скобки.
Стоит последняя версия jcomments 2.3.0, на старой такого не замечал.

Текст сообщения из видео:
[quote name="Мальчик"][quote name="Девочка [/quote]
Привет. Как дела?[/quote]
Нормально. У тебя как?[/quote]
Я тебя тоже везде нахожу и комментирую
« Последнее редактирование: 03.09.2013, 15:08:23 от smart »
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Хм, есть одно решение. Правда надо потестировать, не вылезет ли в других ситуациях проблем.

1. Открываем файл /components/com_jcomments/jcomments.class.php
2. Заменяем (строка 1063):
Код: php
$quotePattern = '#\[quote\s?name=\"([^\"\'\<\>\(\)]*?)\"\](<br\s?\/?\>)*?(.*?)(<br\s?\/?\>)*\[\/quote\](<br\s?\/?\>)*?#ism' . JCOMMENTS_PCRE_UTF8;
на
Код: php
$quotePattern = '#\[quote\s?name=\"([^\"\'\<\>\(\)]*?)\"\](<br\s?\/?\>)*?(.*?)(<br\s?\/?\>)*\[\/quote\](<br\s?\/?\>)*?#ismU' . JCOMMENTS_PCRE_UTF8;
*

Allod

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Спасибо, всё работает. В других ситуациях проблем не обнаружил.
*

ecolora

  • Завсегдатай
  • 1433
  • 170 / 2
  • творец
Тех, кто умышленно будет "ложить" мои шаблоны, буду посылать в Бан! )))

Смарту респект за быстрое реагирование!
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

jiva242

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
Здравствуйте, smart.

Наконец то отловил уязвимость.

Если закрывающий [/b] идет сразу после кавычек, то есть так "[/b] - то происходит ошибка интерпретации и "ломается шаблон". На выходе это выглядит так (см.скрин)

http://yadi.sk/d/PHaNoZtN3I446

Будем весьма признательны за практический совет по устранению этого недостатка.

*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Да, вопщем проблема наблюдается если
1. за двойной английской кавычкой - " - следует квадратная скобка [
2. а затем /b или /i или /s
3. а затем закрывающая квадратная скобка ]
4. а затем URL

например, если оригинальный текст:
Код
Добавить комментарий [b]"Добавить комментарий"[/b]
http://google.com

в случае с [/b] получаем
Код
Добавить комментарий <strong>"Добави<span style="font-size:0;padding:0;margin:0;"> </span>ть комментарий" trong&gt;<a href="http://google.com" target="_blank" rel="external nofollow">google.com</a>

в случае с [/i] получаем
Код
Добавить комментарий <em>"Добавить комментарий" m&gt;<br><a href="http://google.com" target="_blank" rel="external nofollow">google.com</a></em>

в случае с [/s] получаем
Код
Добавить комментарий <del>"Добавить комментарий" el&gt;<br><a href="http://google.com" target="_blank" rel="external nofollow">google.com</a>

Похоже что вставливание URL каким-то непостижимым образом обрубает первую букву закрывающего HTML-овского тага.
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Если закрывающий [/b] идет сразу после кавычек, то есть так "[/b] - то происходит ошибка интерпретации и "ломается шаблон". На выходе это выглядит так (см.скрин)
Так, попробуйте сделать следующее:

1. Открываем файл /components/com_jcomments/jcomments.class.php
2. Меняем строчку:
Код: php
			$plainText = preg_replace('#(^|\s|\>|\()((http://|https://|news://|ftp://|www.)\w+[^\s\[\]\<\>\"\'\)]+)#i'. JCOMMENTS_PCRE_UTF8, '', $plainText);
на
Код: php
			$plainText = preg_replace('#(^|\s|\>|\()((http://|https://|news://|ftp://|www.)\w+[^\s\[\]\<\>\"\'\)]+)#i'. JCOMMENTS_PCRE_UTF8, '\\1', $plainText);
3. Сохраняем изменения.

Отпишитесь пожалуйста по результатам...
*

jiva242

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
Решение работает. Благодарю вас, smart  ::)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Разрешить комментирование гостям

Автор Taatshi

Ответов: 21
Просмотров: 4488
Последний ответ 19.12.2020, 11:54:49
от Nobillis
[Решено] Не отображаются аватары CommunityBuilder в JComments

Автор Ishti39

Ответов: 10
Просмотров: 1785
Последний ответ 11.07.2017, 19:09:32
от warlocksp
[Решено] Не удаляются комментарии в админке. (Joomla 2.5.28, JComments 3.0.5)

Автор Esken

Ответов: 5
Просмотров: 1986
Последний ответ 08.05.2017, 17:47:54
от Esken
[Решено] Не обновляется CAPTCHA в JComments 2.3.0

Автор chilly_bang

Ответов: 24
Просмотров: 15960
Последний ответ 28.04.2016, 15:31:15
от Risska
[Решено] Отображается код {jcomments off}

Автор the_nickname

Ответов: 5
Просмотров: 4202
Последний ответ 24.03.2016, 17:31:50
от Lukart