Решение с кодировкой для php pro bid
05.02.2009
Как вы уже знаете из топика Русские буквы в виде ??????????? в магазине vam shop не было найдено решение для php pro bid v6. Предистория такова. Переехали на другой сервер, и не уточнили по настройкам базы. Основные, расположенные на нем сайты пыхтели нормально, а вот переехавший vwww.ru не захотел. Выяснилось, что проблема была в настройках соединения с базой.
Решение то тривиальное. Надо установить соединение с базой в нужной кодировке с помощью
mysql_query("set names 'utf-8'"); ##для работы под utf8
или
mysql_query("set names 'cp1251'"); ##для работы под windows-1251
Загвоздка была в поске файла и места, куда кусок кода воткнуть. Поиск подсказок результатов не дал. Итогом намеков, недосказанностей – решение было найдено.
1. Определяем глобальную языковую кодировку. Для чего заменяем в файле language/russian/global.lang
define ('LANG_CODEPAGE', 'iso-8859-1');
на
define ('LANG_CODEPAGE', 'cp1251');
2. Заменяем в файле admin/templates/login.tpl.php
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
на
<meta http-equiv="Content-Type" content="text/html;charset=<?=LANG_CODEPAGE;?>">
Таким образом выводим правильную кодировку для страницы входа в административную панель
3. Подключаем базу в нужной нам кодировке. В файле includes/global.php после строк
$db = new database;
$db->connect($db_host, $db_username, $db_password);
$db->select_db($db_name);
задаем нужное соединение с базой (у меня windows1251), вставляем следующее
mysql_query("set names 'cp1251'");
Теперь у нас и страницы и база и соединение с базой работают в одной русской кодировке. На этом можно и остановиться. Если кому то поможет, буду рад.
Спасибо за подсказку, применил у себя.