IPB forum: возникла ошибка при работе с базой данных

После установки IPB форума или его переносе на другой сервер/хостинг и настройки CMS работают все страницы (главная, регистрация, профиль и тд.), кроме отображения тем. На странице темы отображается ошибка:

«Возникла ошибка при работе с базой данных»

Эта ошибка вызвана тем, что таблицы и информация в базе находятся в кодировке отличной от utf-8.


Исправление:

  1. Создайте в корне сайта файл convert.php

  2. В этот файл разместите и сохраните код:
<?php
// Database info

include("conf_global.php");

$dbhost = $INFO['sql_host'];
$dbuser = $INFO['sql_user'];
$dbpass = $INFO['sql_pass'];
$dbname = $INFO['sql_database'];

//---------------

header('Content-type: text/plain');

$dbconn = mysql_connect($dbhost, $dbuser, $dbpass) or die( mysql_error() );
$db = mysql_select_db($dbname) or die( mysql_error() );

$timer['start'] = microtime(true);

$sql = "ALTER DATABASE `".$dbname."` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
$result = mysql_query($sql) or die( mysql_error() );
print "Database changed to UTF-8.\n";

$sql = 'SHOW TABLES';
$result = mysql_query($sql) or die( mysql_error() );

$sql = array();
while ( $row = mysql_fetch_row($result) )
{
$table = mysql_real_escape_string($row[0]);
$sql = "ALTER TABLE {$table} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci, CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql_query($sql) or die( mysql_error() );

print "{$table} changed to UTF-8.\n";
}

mysql_close($dbconn);
$timer['end'] = microtime(true) - $timer['start'];
echo "\nPage generated in ". round( $timer['end'], 4 );
?>

После этого перейдите по ссылке http://ВАШ-ДОМЕН/convert.php.

Таким образом проблема будет решена.