Jump to content
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

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

Featured Replies

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

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

 

ПС

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

  • Author

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

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

 

ПС

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

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

  • Author

Проверил !

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

 

<#MOD_NAME#>,

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

<#REPORT#>

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

  • Author

Может кто то ещё сталкивался ?

  • 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

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

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

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

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

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.