Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
intent

Форум+мускл

Recommended Posts

Поставил форум, установил Руссификацию, прописал кодировку. И вместо русских слов вопросики!

Вопрос: где в скрипте прописать кодировку для мусколы?

Share this post


Link to post
Share on other sites

Если у Вас MySql 5, попробуйте поискать ответ здесь

 

Пожалуйста, не забывайте писать версию форума, версию базы и прочего, о чем спрашиваете, в названии темы.

Очень сложно быть телепатом.

Share this post


Link to post
Share on other sites

2.2.2 версия.

Тему прочёл, но не уловил куда именно сувать, можно поподробней если не сложно!

Share this post


Link to post
Share on other sites

Я не имею опыта работы с MySql 5, да и 2.2.2 у меня только тестовые.

Если не сложно, когда разберетесь, напишите решение.

Этот форум о дизайне, тем не менее, очень много вопросов подобных вашему.

Мы ответить на них можем далеко не всегда.

Share this post


Link to post
Share on other sites

Информация взята с ibrportal.net

 

- в админке в общих настройках - настройка конфигурации - главные настройки: вместо iso-8859-1 указать windows-1251

- создаем файл .htaccess и прописываем нем

AddDefaultCharset windows-1251

- если нужно, то в файлах меняем

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

на

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />

хотя для 22х мы этого ни разу не делали

- можно в в конфиг MySQL добавить пару строк

/etc/my.cnf

Рассмотрим пример конфига на основе MySQL 5.x.

В раздел [mysqld] необходимо добавить следующее:

default-character-set=cp1251 
character-set-server=cp1251 
collation-server=cp1251_general_ci 
init-connect="SET NAMES utf8" 
skip-character-set-client-handshake

Две последние строки принудительно устанавливают кодировку cp1251 для всех запросов.

В раздел mysqldump достаточно добавить только

default-character-set=cp1251

- Вариант решения проблемы с кодировкой при переносе БД с более старых версий MySQL от 4.1:

перед заливкой бэкапа MySQL со старого хостинга на новый в самом начале файла дампа добавляем

SET collation_connection = cp1251_general_ci;
SET collation_database = cp1251_general_ci;
SET collation_server = cp1251_general_ci;
SET character_set_client = cp1251;
SET character_set_connection = cp1251;
SET character_set_database = cp1251;
SET character_set_results = cp1251;
SET character_set_server = cp1251;

заливаем на новый хостинг

 

ищем файлы, которые отвечают за подключение к БД в Вашем скрипте и прописываем там в правильном оформлении

SET NAMES utf8;, а именно:

открыть \ips_kernel\class_db_mysql_client.php и \ips_kernel\class_db_mysqli_client.php

найти:

if ( ! mysql_select_db($this->obj['sql_database'], $this->connection_id) )
{
$this->fatal_error();
return FALSE;
}

вставить после:

mysql_query('SET NAMES utf8');

открыть \sources\ipsclass.php и \installl\core\ipsclass.php

найти:

$this->DB->connect()

вставить после:

mysql_query('SET NAMES utf8');

-на хостинге должна быть установлена русская локаль cp1251

Попробуйте создайте пустой файл и в нем вставьте функцию:

echo strtolower("ТеСТиРоВние");

И посмотрите переведет регистр или нет.

Если нет, то попробуйте так:

setlocale(LC_CTYPE, 'ru_RU.CP1251');
echo strtolower("ТеСТиРоВние");

Если и так не переведет, то пишите хостеру, чтобы в Вашей Unix-системе установил нужную локаль.

- для нормального логина с русским ником и регистрации с ним надо

проверить базу данных, а именно таблицы ibf_member_extra, ibf_members , ibf_members_converge,

чтобы в них стояло кодировка cp1251_general_ci

Попробуйте... Сам скоро буду думать над этой проблемой у себя на localhost'е... Как только дойду до нее распишу подробно как и что делать.

Share this post


Link to post
Share on other sites

Люди!

Проапгрэйдил форум до версии 2.3.0 и теперь у меня ??????????????? вместо текста, вариант, помогавший в версии 2.2.2:

 

 

Заходим - \ips_kernel\class_db_mysql.php

Находим:

 

Код

if ( ! mysql_select_db($this->obj['sql_database'], $this->connection_id) )

{

$this->fatal_error();

return FALSE;

}

 

Вставляем после:

 

Код

mysql_query('SET NAMES utf8');

 

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

Share this post


Link to post
Share on other sites

Если в базе данных еще данные в нормальном виде сохранились, то тогда используйте этот инструмент.

Share this post


Link to post
Share on other sites

У меня нет шелла для экспорта-импорта базы, тем более для вмешательства в процесс...

Share this post


Link to post
Share on other sites

Запросы можно copy&paste в phpMyAdmin.

 

p.s. верните копирайты на форуме в первозданный вид.

Share this post


Link to post
Share on other sites

Перепробовал все запросы, что там указаны - ни 1 не помог, копирайты верну, не проблема.

Share this post


Link to post
Share on other sites

Все скопировали, все ПРАВИЛЬНО выполнилось, ни одной ошибки не произошло и ничего в итоге не изменилось?

 

Ответ простой - в базе не осталось читабельных символов. Как решение - подымать бекап(ы).

Share this post


Link to post
Share on other sites

Да, ошибок не было...

Если мне завтра бэкап хостер поднимет - сегодняшний апгрэйд скрипта форума останется в силе или опять надо будет апгрэйдить и опять кодировка полетит.

Share this post


Link to post
Share on other sites
апгрэйдить и опять кодировка полетит.

 

Из-за upgrade кодировка не летит :(

Возможно чуть и летит, когда обновляем форум с русского на английкий, но это решается в 2 минуты, настройкой в "General Settings".

Share this post


Link to post
Share on other sites

Я знаю, просто до апгрэйда файл class_db_mysql_client.php был другим вообще и тем более после того, как я туда прописал указанное выше (в версии 2,2,2 ранее тоже были проблемы), после апгрэйда файл стал другим и куда добавлять ту строку я вообще не знаю, соответственно форум опять в знаках ??????????

 

Я хотел бы знать, после бэкапа я смогу проапгрэйдиться или всё полетит снова?

Share this post


Link to post
Share on other sites
форум опять в знаках ??????????

 

Ну не может этого быть после обновления, если конечно в conf_global.php не затерялась строка:

 

$INFO['mysql_codepage'] = 'latin1';

 

или cp1251, тогда все могло пойти не так как нужно.

 

Вообще, перед обновлением необходимо делать бекап всех файлов, базы данных. При обновлении быть уверенным 100%-но, что кодировка апгрейтера соответствует кодировке базы данных + лучше всего использовать ручной режим обновления (молча копировать запросы в phpMyAdmin и нажимать 'Далее...').

Share this post


Link to post
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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...