Перейти к публикации
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.

Запрос ников в php

Опубликовано:

Купил забугорный чат для форума. Все хорошо да не понимает до конца он кириллицы. А саппорт тугодумы.

 

вот такой вот беспредел получается

post-39692-0-78227500-1315398096_thumb.jpg

 

Все ники у которых отображаемое имя введено кириллицей дают такие вот крякозябры в окошке где они собственно должны отображаться.

 

Полагаю за это безобразие отвечает файл cometchat_getid.php

 

Который собственно выглядит так.

 

include_once dirname(__FILE__)."/cometchat_init.php";

$response = array();
$messages = array();

$status['available'] = $language[30];
$status['busy'] = $language[31];
$status['offline'] = $language[32];
$status['invisible'] = $language[33];
$status['away'] = $language[34];

$fetchid = $_POST['userid'];

$time = getTimeStamp();
$sql = getUserDetails($fetchid);
$query = mysql_query($sql);

if (defined('DEV_MODE') && DEV_MODE == '1') { echo mysql_error(); }

$chat = mysql_fetch_array($query);

if ((($time-processTime($chat['lastactivity'])) < ONLINE_TIMEOUT) && $chat['status'] != 'invisible' && $chat['status'] != 'offline') {
if ($chat['status'] != 'busy' && $chat['status'] != 'away') {
	$chat['status'] = 'available';
}
} else {
$chat['status'] = 'offline';
}

if ($chat['message'] == null) {
$chat['message'] = $status[$chat['status']];
}

$link = getLink($chat['link']);
$avatar = getAvatar($chat['avatar']);

if (function_exists('processName')) {
$chat['username'] = processName($chat['username']);
}

$response =  array('id' => $chat['userid'], 'n' => $chat['username'], 's' => $chat['status'], 'm' => $chat['message'], 'a' => $avatar, 'l' => $link);
// session_write_close();
// sleep(10);
header('Content-type: application/json; charset=utf-8');
echo json_encode($response);
exit;

 

либо один из других файлов, что маловероятно.

post-39692-0-78499600-1315398407_thumb.png

 

Вопрос: Как заставить приложение понимать русские ники?

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

Опубликовано:

Файл в кодировке utf-8?

 

Как вариант попробуйте добавить

$chat['username'] = mb_convert_encoding( $chat['username'], 'utf-8' );

 

перед

$response =  array('id' => $chat['userid']...

Опубликовано:
  • Автор

Файл в кодировке utf-8?

да

 

Как вариант попробуйте добавить

не помогло.

 

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

одним словом all non english nicknames.

Опубликовано:

Тогда в саппорт, по одному этому куску кода мало что можно сказать. Ajax работает в utf-8, странно что не заработало. Надо проследить весь "путь", от запроса данных до отображения в браузере.

Опубликовано:
  • Автор

Плохо. Видимо придется думать как конвертировать русские ники в латинские при запросе.

 

Саппорт окончательно потух с моим билетиком.

Опубликовано:

А на каком этапе портится ник? На выводе в этом всплывающем окошке, или вообще везде там у них в системе?

 

Как он читает ники с форума? Через mysql? Может, там где-то поискать и внедрить "SET NAMES utf8"? :)

Опубликовано:
  • Автор

А на каком этапе портится ник? На выводе в этом всплывающем окошке, или вообще везде там у них в системе?

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

 

Как он читает ники с форума? Через mysql?

да.

 

Может, там где-то поискать и внедрить "SET NAMES utf8"?

знать бы где да как :( мне наверное легче будет запретить кириллицу в никах при регистрации.

 

спасибо.

Опубликовано:
  • Автор

Баг исправили.

 

It is a IPB specific issue. Has been resolved. Three lines need to be commented in cometchat_init.php

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

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.