Я перенес форум с одного хостинга на другой, но тут возникла проблема с кодировкой. К счастью я это исправил. Теперь русские буквы отображаются как положено, а не знаками вопроса. Но мод гостевой книги Advanced Guestbook, все равно русские буквы понимать не хочет, и вместо них печатает одни знаки вопроса. Может ктото уже сталкивался с подобной проблемой и знает как ее решить.
Заставить понимать русские буквы нужно только гостевую книгу, с форумом эту проблему я уладил следующим образом:
в config.php добавил следующий код:
Код: Выделить всё
$mysql_charset = 'cp1251';
$collation_connection = 'cp1251_general_ci';
Код: Выделить всё
$db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, false);
if(!$db->db_connect_id)
{
message_die(CRITICAL_ERROR, "Could not connect to the database");
}
Код: Выделить всё
// Set connection charset & collation for MySQL (based on phpMyAdmin)
if( preg_match("/^mysql/i", SQL_LAYER) )
{
$sql = 'SELECT VERSION() AS mysql_version';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$match = explode('.', $row['mysql_version']);
if (!isset($row))
{
define('MYSQL_INT_VERSION', 32332);
define('MYSQL_STR_VERSION', '3.23.32');
}
else
{
define('MYSQL_INT_VERSION', (int)sprintf('%d%02d%02d', $match[0], $match[1], intval($match[2])));
define('MYSQL_STR_VERSION', $row['mysql_version']);
}
unset($result, $row, $match);
if ( MYSQL_INT_VERSION >= 40100 && isset($mysql_charset) )
{
if (empty($collation_connection) || ( strpos($collation_connection, '_') ? substr($collation_connection, 0, strpos($collation_connection, '_')) : $collation_connection) == $mysql_charset )
{
$sql = "SET NAMES $mysql_charset";
if ( !($db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Could not set MySQL charset', '', __LINE__, __FILE__, $sql);
}
}
else
{
$sql = "SET CHARACTER SET $mysql_charset";
if ( !($db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Could not set MySQL charset', '', __LINE__, __FILE__, $sql);
}
}
if ( !empty($collation_connection) )
{
$sql = "SET collation_connection = '$collation_connection'";
if ( !($db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Could not set MySQL collation connection', '', __LINE__, __FILE__, $sql);
}
}
}
}