Jump to content

Пустые жалобы на сообщения (2.3.6.)


PaulZibert
 Share

Recommended Posts

Суть проблемы такова. Стали приходить пустые жалобы на сообщения по кнопке жалоба. Если ранее приходили с текстом и ссылкой на тему, то теперь просто пустое сообщение. Может кто то сталкивался ?

Link to comment
Share on other sites

@PaulZibert, проверьте языковые файлы Внешний вид -> Список языков -> Изменить

Файл lang_email_content, строка report_post

 

ПС

А они вообще куда пустые приходят, в личных уведомлениях или на емайл?

  • Upvote 1
Link to comment
Share on other sites

@PaulZibert, проверьте языковые файлы Внешний вид -> Список языков -> Изменить

файл lang_email_content, строка report_post

 

ПС

А они вообще куда пустые приходят, в личных уведомлениях или на емайл?

В ЛС. Проверю !

Link to comment
Share on other sites

Проверил !

Сейчас там такая строка:

 

<#MOD_NAME#>,

Всем модераторам было отправлено уведомление от <#USERNAME#> через кнопку «Жалоба».
------------------------------------------------
Тема: <#TOPIC#>
------------------------------------------------
Ссылка на сообщение: <#LINK_TO_POST#>
------------------------------------------------
Жалоба:

<#REPORT#>

------------------------------------------------

Link to comment
Share on other sites

  • 3 years later...

Здравствуйте.

Подобная проблема была ранее тоже после смены хостинга где новый php.

Путем гугления собрал все воедино и через TextReplacer поискал по всем файлам на наличие "report"

Изза новой версии PHP разработчикам и эксплуататорам движков и скриптов, использующих кодировку отличную от utf-8 предлагается либо переходить на utf-8, либо исправлять все вхождения функций htmlspecialchars() и htmlentities() на такой, полный, формат:

htmlspecialchars($str, ФЛАГ, 'кодировка сайта');

Однако, можно попробовать использовать более универсальный код:

htmlspecialchars($str, NULL, '');

 

Решение:

Открываем .../sources/action_public/misc/contact_member.php

Примерно строка 399

Старое

$report = $this->ipsclass->my_nl2br( htmlspecialchars($report, ENT_COMPAT) );

Заменить на новое

$report = $this->ipsclass->my_nl2br( htmlspecialchars($report, ENT_COMPAT, '') );

 

Тут же немного смотрим ниже

Примерно строка 450

Старое

$this->lib->msg_post    = $this->lib->postlib->parser->pre_display_parse( $this->lib->postlib->parser->pre_db_parse( htmlspecialchars( $this->email->message, ENT_QUOTES ) ) );

Заменить на новое

$this->lib->msg_post    = $this->lib->postlib->parser->pre_display_parse( $this->lib->postlib->parser->pre_db_parse( htmlspecialchars( $this->email->message, ENT_QUOTES, '' ) ) );

Edited by butik2
Link to comment
Share on other sites

Передача пустой строки больше смахивает на костыль нежели на универсальный код. Универсальный подход это указать кодировку форума - $this->ipsclass->vars['gb_char_set']

Link to comment
Share on other sites

Код можно применить независимо от кодировки сайта. И будет работать. Поэтому он универсальный. А вот касаемо IPB, тут уже лучше указывать точную кодировку, но это не означает, что просто пустая строка не к месту. Это наоборот подчеркивает универсальность способа.

  • Upvote 1
Link to comment
Share on other sites

Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()), в указанном порядке. Не рекомендуется к использованию.

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...