Опять про кодировку - имена юзеров при инте& Опять про кодировку - имена юзеров при инте&
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Опять про кодировку - имена юзеров при инте&

Started by DennisVV, August 04, 2010, 06:46:46 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DennisVV

Здравствуйте уважаемые!
была галерея 1.4.10, обновил ее до 1.5.6
БД была в cp1251, сделал дамп перегнав ее в utf8 и соответственно обратно залив уже в новой кодировке, т.е. в utf8, но кодировка стала utf8_general_ci (я думал она будет utf8_bin)

далее: есть форум phpbb-3.0.7 и все пользователи находятся в БД форума... БД форума в кодировке utf8_bin, и все юзвери галереи берутся из БД форума

теперь проблема: при интеграции галереи с форумом, все русские имена пользователей а также групп (тоже русскими буквами) которые берутся из форума отображаются знаками вопроса
до конвертации была проблема и с названиями категорий и альбомов, но после вот этих манипуляций http://forum.coppermine-gallery.net/index.php/topic,49624.msg238431.html#msg238431 категории и альбомы стали отображаться нормально, а вот юзеры и их группы никак не могу побороть, чтобы не было абракадабры...
нашел вот этот рецепт http://forum.coppermine-gallery.net/index.php/topic,28253.msg177319.html#msg177319 , но это для 1.4.х и таких строк в файле bridgemgr.php я не нашел
не думаю, что ошибка может возникать из-за того что форум в кодировке utf8_bin, а галерея в utf8_general_ci... или я ошибаюсь?

подскажите пожалуйста, как побороть сей недуг, т.е. чтобы имена пользователей на русском отображались корректно?
искренне надеюсь на вашу помощь!
заранее благодарен!

DennisVV

ну неужели никто не сможет мне помочь??? :(

Makc666

Quote from: DennisVV on August 04, 2010, 06:46:46 AM
но это для 1.4.х и таких строк в файле bridgemgr.php я не нашел

Для начала определитесь, пожалуйста, с какой версией галереи мы работаем, а то вы сначала говорите о 1.5.*, а потом о 1.4.*.

Quote from: DennisVV on August 16, 2010, 12:24:40 PM
ну неужели никто не сможет мне помочь??? :(

Никто не мешает вам поменять сравнение для базы с unt8_general_ci на utf8_bin или наоборот.
Достаточно слить дамп базы в режиме совместимости с версией mysql40, создать новую базу с нужным сравнением и импортировать обратно.
Я везде используют utf8_general_ci.

Дальше Вам нужно установить phpMyAdmin, зайти через него в каждую базу по очереди и внутри выполнить запрос:
SHOW VARIABLES;

И разместить ответы тут.

Так же ознакомьтесь с темой: http://forum.coppermine-gallery.net/index.php/topic,66649.0.html, а точнее с её вторым постом.

В версии 1.5.* нет необходимости прописывать SET NAMES cp1251 везде подряд.
А начиная с версии 1.5.8 достаточно просто указать переменную в файле конфигурации.

kastorskiy

Столкнулся с аналогичной проблемой, кириличные логины в коментариях отображаются вопросами (так же, вопросами они записываюся в базу, в таблицу cpg15x_comments, поле msg_author), причём сам коментарий в нормальной кодировке.
В моём случае, галерею и форум ставил с нуля, а не обновлял, у меня форум SMF 2.0 и галерея 1.5.12. Единая база форма и базы в кодировке UTF-8.

kastorskiy

Quote from: kastorskiy on July 19, 2011, 02:42:43 PM
Единая база форма и базы в кодировке UTF-8.
Опечатался, база форума и галереи имелось в виду.

З.Ы. А почему тут нельзя редактировать сообщения хотя-бы в течении небольшого времени?

Makc666

Попробуйте так...

Открыть файл:
./include/functions.inc.php

Найти функцию:
function cpg_db_query($query, $use_link_id = 0)
{
...
}


Перед строкой:
$result = mysql_query($query, $link_id);

Добавить код:
if ($CONFIG['dbcharset']) {
    mysql_query("SET NAMES '$CONFIG[dbcharset]'",$result);
}
   

Ulenka

Не помогла последняя рекомендация:(
Кодировка базы форума и галереи (в одной базе) одинаковая - utf8_bin.
Есть ли еще решение?

Janvio

Я тоже много пробывал, но вот только это решение помогло.
1. Находим в папке coppermine файл bridgemgr.php
в нем ищем строку:
$link = mysql_connect($_POST['db_hostname'], $_POST['db_username'], $_POST['db_password']);

сразу после нее дописываем еще одну строку:
mysql_query("SET NAMES UTF8", $link);

аналогично находим строку:
$link = @mysql_connect($BRIDGE['db_hostname'], $BRIDGE['db_username'], $BRIDGE['db_password']);

и добавляем сразу после нее:
mysql_query("SET NAMES UTF8", $link);

2. В файле coppermine\include\functions.inc.php ищем строку:
$result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);

после нее добавляем
mysql_query("SET NAMES UTF8", $result);

3. В файле coppermine\bridge\udb_base.inc.php ищем строку:
$this->link_id = mysql_connect($this->db['host'], $this->db['user'], $this->db['password']);

после нее добавляем:
mysql_query("SET NAMES UTF8", $this->link_id);