Перейти к публикации

Минимальное кол-во символов в комментариях.


Рекомендованные сообщения

Зачастую на одном из сайтов пользователи оставляют комментарии в 5 букв, хотя минимальное кол-во символов в админке равно 20.

Делается всё просто, пишется 3 буквы а потом зажимать пробел, и тогда такой комментарий дле пропускает с лёгкостью. По моему нужно убрать такую штуку, чтобы больше одного пробела одновременно обрезалось, и не давало добавить коммент.

Ссылка на сообщение
Поделиться на других сайтах

Зачастую на одном из сайтов пользователи оставляют комментарии в 5 букв, хотя минимальное кол-во символов в админке равно 20.

Делается всё просто, пишется 3 буквы а потом зажимать пробел, и тогда такой комментарий дле пропускает с лёгкостью. По моему нужно убрать такую штуку, чтобы больше одного пробела одновременно обрезалось, и не давало добавить коммент.

Баг есть баг, но эффективней просто на просто не учитывать пробел, как символ.

В DLE 8.2 я использовал конструкцию:

$comments1 = preg_replace("/ /i", "", $comments); // Не учитываем пробелы

if( strlen(trim(strip_tags($comments1))) < 15){ // Не учитываем изображения и смайлы, и если текст меньше 15 символов, то..

$stop[] = $lang['news_err_0']; // Ошибка.

$CN_HALT = TRUE;

}

Только меня теперь мучает вопрос, как это прикрутить к версии 9.2 :)

Изменено пользователем ibred
Ссылка на сообщение
Поделиться на других сайтах

hotdj,

Решение описано выше и работает оно также и на актуальных версиях без проблем. Видимо просто вставляете этот код не туда.

Ссылка на сообщение
Поделиться на других сайтах

hotdj,

Решение описано выше и работает оно также и на актуальных версиях без проблем. Видимо просто вставляете этот код не туда.

Я вот и сам разобраться не могу.

Может подскажите куда вставить данный код?

Ссылка на сообщение
Поделиться на других сайтах

Например после

if( dle_strlen( $comments, $config['charset'] ) > $config['comments_maxlen'] ) {
$stop[] = $lang['news_err_3'];
$CN_HALT = TRUE;
}[/code]

Ссылка на сообщение
Поделиться на других сайтах

hotdj,

Решение описано выше и работает оно также и на актуальных версиях без проблем. Видимо просто вставляете этот код не туда.

Я не собираюсь его никуда вставлять. Считаю что это должно быть новой версии обязательно. Т.к. если выстраивается максимальное кол-ов символов в админке, то пробел не считается символом, и его нужно резать.

Ссылка на сообщение
Поделиться на других сайтах

Вместо

if( intval($config['comments_minlen']) AND dle_strlen( $_POST['comments'], $config['charset'] ) < $config['comments_minlen'] ) {
пишем
if( intval($config['comments_minlen']) AND (dle_strlen( $_POST['comments'], $config['charset'] ) < $config['comments_minlen'] OR strlen(trim(strip_tags(preg_replace("/ /i",'',$_POST['comments'])))) < $config['comments_minlen'] )) {

в районе 40 строки addcomments.php

Можно упростить, но в подробности не вдавался.

А еще в редактирование бы вставить :rolleyes:, а то написал и исправил тут же... на 3 буквы с пробелами... :)

Изменено пользователем Wanderers
Ссылка на сообщение
Поделиться на других сайтах

это должно быть новой версии обязательно

уверен, что будет. Владимир рацухи принимает к сведению.

а пока что - заюзай у себя этот код)

Ссылка на сообщение
Поделиться на других сайтах

Например после

if( dle_strlen( $comments, $config['charset'] ) > $config['comments_maxlen'] ) {

	$stop[] = $lang['news_err_3'];

	$CN_HALT = TRUE;

}

Все отлично работает.

Благодарю :)

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...