SOS! Форум стал нечитаем!

Автор uniart, 05 июня 2008, 23:56:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

uniart

При переходе на новый сервер произошло следующее:

1. Форум заработал, все отображалось нормально, но вдруг оказалась странная вещь - любая новая запись при записи писалась нормально, а отображалась дико странно - ряд смайликов с маленькими вопросительными знаками.
2. В попытке исправления "набрел" на функцию превода в UTF, нажал перевести - результат ужасный - все тексты в виде квадратиков и ничего не могу с этим сделать.

Сделал update до версии 1-1-5, скачал smf_1-1-5_russian-utf8 и залил его в Themes/ Ничего не помогло.

Посмотрел форум на старом сервере (пока его оттуда еще не убрали), все отображается отлично. Сделал оттуда бэкап базы данных.

Что делать? Горю со сташной силой... uglystupid

Yworld_garry

Посмотри кодировку базы, думаю она у тебя на новом другая, отличная от старой.
Думаю после твоих экспериментов придётся опять заливать старую базу и ставить старый не обновлённый форум. Только сразу кодирвку глянь в базе. Потом уже обновиш до актуальной версии.

uniart

Прошу прощения за вопросы чайника:
1. Где посмотреть кодировку базы? В админе, который я облазил, вроде этого нету.
2. КАк залить старую базу?
3. "ставить старый не обновлённый форум" - это означает снова сделать инсталляцию всего форума? Если да, то надо ли предварительно удалить с сервера папку smf, в которой находятся файлы форума?

Lysyj

1.в панели phpmyadmin заходишь в базу форума и открывай любую таблицу. в самом низу будет писать например
Таблиц: 62     Всего     4,840   MyISAM   cp1251_general_ci   435.9 КБ     312

Красным я отметил кодировку форума.

1а)Затем глянь в бэкап .sql файл и помотри что там у тебя пишет. например:
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

2. в базе форума сверху будет функция Импорт. В компе выбираешь файл кодировки(перед этим повторить пункт 1а)

2а)выбираешь с какой кодировкой загружать ( кодировка должна соответствовать кодировке в п.1а) и нажимаешь на Ок

3. Пока не надо удалять никакой форум. Надо только удалить таблицы из базы.

3а)Для этого заходишь в базу форума и удаляешь все таблицы.чтобы их удалить надо в самом низу под таблицами Выбрать "Отметить все" и правее будет меню выбора, выбери "Удалить". Потом подтверди и все ок. После всех этих процедур приступай к п.2

uniart

Осуществил. Ситуация несколько улучшилась, но проблема осталась. По порядку:

1. Сейчас форум выглядит так:

Часть форума "статическая" выглядит нормально (странные смайлики с вопросами наверху - это написанная новост):

Вся "динамическая", основная часть форума выглядит вопросами со смайликами:


2. Кодировка в таблицах сейчас прописана utf8_general_ci:


3. В бэкап .sql файле, который я импортировал, указания на DEFAULT CHARSET нет.
Я посчитал, что это - cp1251 - может в этом и была ошибка?
Стандартное описание таблиц выглядит так:
#
# Table structure for table `smf_messages`
#

DROP TABLE IF EXISTS `smf_messages`;

CREATE TABLE `smf_messages` (
  ID_MSG int(10) unsigned NOT NULL auto_increment,
  ID_TOPIC mediumint(8) unsigned NOT NULL default 0,
  ID_BOARD smallint(5) unsigned NOT NULL default 0,
  posterTime int(10) unsigned NOT NULL default 0,
  ID_MEMBER mediumint(8) unsigned NOT NULL default 0,
  ID_MSG_MODIFIED int(10) unsigned NOT NULL default 0,
  subject tinytext NOT NULL default '',
  posterName tinytext NOT NULL default '',
  posterEmail tinytext NOT NULL default '',
  posterIP tinytext NOT NULL default '',
  smileysEnabled tinyint(4) NOT NULL default 1,
  modifiedTime int(10) unsigned NOT NULL default 0,
  modifiedName tinytext NOT NULL default '',
  body text NOT NULL default '',
  icon varchar(16) NOT NULL default 'xx',
  PRIMARY KEY (ID_MSG),
  UNIQUE ID_MEMBER (ID_MEMBER, ID_MSG),
  UNIQUE ID_BOARD (ID_BOARD, ID_MSG),
  UNIQUE topic (ID_TOPIC, ID_MSG),
  KEY ipIndex (posterIP(15), ID_TOPIC),
  KEY participation (ID_MEMBER, ID_TOPIC),
  KEY showPosts (ID_MEMBER, ID_BOARD),
  KEY ID_TOPIC (ID_TOPIC)
) TYPE=MyISAM;

#
# Dumping data in `smf_messages`
#

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

4.  в базе форума сверху будет функция Импорт. В компе выбираешь файл кодировки(перед этим повторить пункт 1а)

Вот это я не понял. Файл кодировки - это отдельный файл, который загружается перед импортом базы?



Кодировку перед импортом базы я выбрал cp1251, тогда почему в таблицах везде прописано - utf8_general_ci? Может в этом "собака и зарыта"?

Спасибо за помощь. Надеюсь, в конце-концов восстановлю форум...


Mavn

кодировка бд кодировка таблиц должны быть идентичными!
О кодировке можно почитать например здесь
О том как исправить вопросы вместо символов можно прочитать здесь
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

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

Lysyj

сегодня сделаю отдельным модом исправление кодировки.

Mavn

Цитата: Лысый от 06 июня 2008, 14:24:43
сегодня сделаю отдельным модом исправление кодировки.

Хех если изначально проблемы в кодировке бд то замучаешь перегонять всю бд в одну кодировку! Смысла не вижу в данном моде!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

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

Lysyj

почему. если в форуме надо только изменить index и ssi
то вполне подойдет.

Mavn

Цитата: Лысый от 06 июня 2008, 14:33:08
почему. если в форуме надо только изменить index и ssi
то вполне подойдет.

ну вообще то я уже много раз писал что достаточно просто в Settings.php поставить одну переменную чем править каждый раз при обновлении 2 файла.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

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

Lysyj

просто у меня было несколько раз такое что когда пишу в форуме то знаки вопроса появляются.
Нашел твой пост в одной из тем. там правка 2 файлов. на счет того что в 1 файле правку делаь я не видел:).

uniart

Окончательно: исправил в index.php, как советуют здесь http://www.simplemachines.ru/index.php/topic,791.0.html - и все восстановилось!!!!

Вопрос надо ли делать изменения и в ssi? Или если все работает, то не трогать?

Lysyj

желательно сделать. оно не помешает:)

Mavn

Почитали бы чуток подальше нашли бы более простое решение  :)

Settings.php
$db_character_set = 'cp1251';
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

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