попробуйте это
http://forum.mynuke.ru/showthread.php?t=952 |
такс..у меня подобная проблема..после обновления...
как можно исправить это не рпебегая к базе..поскольку почему- счас нету спенл на хостинге? как правильно создать хтасес? как это можно исправить? |
ну читац те же, не бу ду же я перепечатывать, уже сказанное и не однократно, если воспользоваться поиском, то увидите много различных вариантов и их решения.
http://forum.mynuke.ru/faq.php?faq=...nuke_add_russql при помощи блокнота |
вопросики
И у меня вопросики...
Экспорт базы сделал правильно. На хостинге смотрю - у меня во всех таблицах кодировка шведская. Техподдержка говорит, что база работает у них в такой кодировке и поменять ее нельзя. Нужно, говорят, чтобы при каждом обращении к базе скрипт чт-то там делал с кодировкой. Все, что было написано в этой ветке, я пробовал - не помогает. Поддержка говорит, что если вручную (99 таблиц) поменять кодировку - то это мало поможет... Вопрос, как настроить Нюку, чтобы она нормально работала с хостингом, на котором база работает в шведской (latin1_shwedish_ce) кодировке? |
daer вам надо полюбому изменить кодировку таблиц на нужную
http://forum.mynuke.ru/showthread.p...d=7347#post7347 можно это проделать на локал хосте и затем уже с кодировками перенести на хост а потом скрипте прописать $db->sql_query("SET names cp1251"); |
Выручите начинающего. Денвер, пытаюсь нюку запустить. С трудом создал базу, отвечает при попытке зайти: There seems to be a problem with the MySQL server, sorry for the inconvenience.
We should be back shortly. КАжется, все перепробовал, осталось или пулю в лоб, или нюку в корзину. |
подводим итог по вопросикам.
Проблему можно разбить на 2 части - кодировка базы и настройка Нюки.
1. Перед создание базы на хостинге - обязательно зайти в PHPMYADMIN (на хостинге) и поставить там русский язык и кодировку 1251 general ci. 2. Свою базу экспортим в sql и импортируем с кодировкой 1251 В итоге у таблиц в базе на хостинге должно появиться кодировка "1251 general ci" а не "latin1 shwedish". Если не получается - делать до тех пор, пока не получится (в форумах много советов). к шагу 2 переходить рано. шаг2. Это - теория: Проблема кодировок и вопросительных знаков, или все что нам нужно знать, чтобы решить эту проблему. Внимание!!! Все решения этой проблемы 100% рабочие и проверялись на собственном опыте!!! Если будете все делать так, как описано ниже то ВСЕ У ВАС ПОЛУЧИТСЯ И ПРОБЛЕМА ИСЧЕЗНЕТ!!! В качестве отправной точки рекомендую всем статью "MySQL 4.1 и любые проблемы с русскими буквами" которая находится на сайте httр://phpclub.ru/ Глава 1. Предистория. Дело в том что начиная с версии 4.1.* MySQL использует по умолчанию клиентскую кодировку latin1 (latin1_swedish_ci). Поэтому, если Вы хотите чтобы все данные в БД у Вас хранились и обрабатывались к кодировке cp1251 вам необходимо: 1) при установке MySQL, а можно и после установки с помощью средства MySQLInstanceConfig.exe (находся в подкаталоге /bin каталога с установленной MySQL) установить Manual Selected Default Character Set / Collation Character Set cp1251 2) В my.ini (my.cfg) файле (находится в каталоге установленным MySQL) прописать /*Необязательный пункт, но лучше прописать*/ В секции [mysql] default-character-set=cp1251 В секции [client] default-character-set=cp1251 3) При создании базы данных (я обычно это делаю в PhpMyAdmin) устанавливать сравнение БД в значение Collation=cp1251_general_ci SQL-запрос в этом случае будет выглядеть так: CREATE DATABASE `название_БД` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; Соответственно все таблицы создаваемые в этой БД будут иметь кодировку по умолчанию cp1251. Глава 2. Принцип решения проблемы с кодировками MySQL 4.1.* + PHP: Решение проблемы с кодировками в связке MySQL 4.1.* + PHP-Nuke (PhpBB, Php Fusion, любые Php-скрипты, форумы и портальные системы выполняющие обращение к БД на MySQL). 1) создать БД в кодировке cp1251 2) установить клиентскую кодировку MySQL со значения latin1 в cp1251. 3) после каждого обращения к БД в PHP-скриптах (функции db_connect, mysql_connect) должен выполнятся запрос mysql_query("SET NAMES cp1251") or die ("Invalid query: ".mysql_error()); Т.е в файлах типа mysql.php, db.php, config.php после функций db_connect или mysql_connect (они отвечают за соеднение с БД MySql)прописываем mysql_query("SET NAMES cp1251") or die ("Invalid query: ".mysql_error()); Можно еще добавить: mysql_query ("set client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); ВАЖНО!!! Операции с добавлением строк необходимо проделывать ПОСЛЕ того как мы скопировали папку со скриптами в директорию сайта (обычно /www) и создания БД, но ДО того как мы устанавливаем скрипт (будь то Php-Nuke, Php-Fusion, PhpBB, скрипт интернет магазина на PHP) или экспортируем данные в БД (в случае с Php-Nuke - экспорт из файла mysql.php). 4) экспортировать данные (таблицы) в БД в кодировке cp1251 (или установка скрипта). Итак, Глава 3. Решение проблемы с кодировками для Php-Nuke: 1) Создаем БД: CREATE DATABASE `название_БД` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; 2) Экспортируем таблицы в БД из файла nuke.sql: В PhpMyAdmin переходим на созданную БД (пока без таблиц), вкладка "SQL", выбирам кодировку файла (Character set of the file) cp1251, указываем путь к файлу nuke.sql (через Обзор/Browse), нажимаем Пошел!(Go!). ВАЖНО!!! На этом этапе очень важно выбрать кодировку файла cp1251, это и есть одна из наиболее часто встречающихся причин - неправильный импорт данных в БД. Уже на этом этапе при просмотре данных в таблицах в PhpMyAdmin вы должны увидеть корректно отображающиеся русские символы. На сайте русские символы пока будут отображаться как "???". 3) В файле db\db.php после строк $db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false); if(!$db->db_connect_id) { die("<br><br><center><img src=images/logo.gif><br><br><b>There seems to be a problem with the $dbtype server, sorry for the inconvenience.<br><br>We should be back shortly.</center></b>"); } прописываем mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); НАСЛАЖДАЕМСЯ РЕЗУЛЬТАТОМ!!! Если предложенное решение не помогло, можно попробовать другие (но точно не знаю, действенные это решения или нет, так как мне помогли вышеперечисленные): В файле mysql.php конструкцию {$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password); } if ($this>db_connect_id) заменяем на { $this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password); } mysql_query ("set names ='cp1251'"); mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); if($this->db_connect_id) Конструкцию { $this->query_result = @mysql_query($query, $this->db_connect_id); } if($this->query_result) Меняем на { $this->query_result = @mysql_query($query, $this->db_connect_id); } mysql_query ("set names ='cp1251'"); mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'"); if($this->query_result) Я очень рад если мой мануал помог Вам в решении проблемы с кодировками, по каким либо вопросам связанным с данной темой можете обращаться в личку. Не судите строго за стиль написания мануала, так как я его написал спонтанно и за полчаса. Если кому надо, буду рад ответить на вопросы по отдельным решениям проблем с кодировками в PhpBB2, PHP-Fusion, Shop-Script Premium, так я на практике решал эти проблемы, но в принципе все написанное в этом мануале, должно Вам помочь. а это то, что помогло лично мне В файле mainfile.php находим следующий код Исходный код if (defined('FORUM_ADMIN')) { @require_once("../../../includes/sql_layer.php"); $dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname); } elseif (defined('INSIDE_MOD')) { @require_once("../../includes/sql_layer.php"); $dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname); } else { @require_once("includes/sql_layer.php"); $dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname); } и после него добавляем строку Исходный код mysql_query("SET CHARSET cp1251") or die (mysql_error()); сохраняем измененный файл и все, наслаждаемся результатами проделанной работы! После этого ваш сайт должен перестать отображать знаки вопросов ?????????? и начать нормально работать с кириллицей, отображая все по Русски! В самой базе тоже должно все отображаться Кириллицей. (после этого отбражается, но при сохранении изменений в модуле снова вопросики) Вот ещё одно решение! Цитата откройте config.php и впишите в нем после <?php mysql_query("SET NAMES 'cp1251'"); тоже самое в admin.php Цитата /db/db.php'. В файле db.php внизу есть код: $db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false); после него вставить: mysql_query ("set character_set_results='cp1251'"); И ВСЁ РАБОТАЕТ!!! (вроде начало работать и у меня) проверь config.php 90% проблема в нем. Укажи правильно имя базы, юзера или пароль. |
уходим от ???????????
Рано порадовалси
теперя вот чего Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in z:\home\localhost\www\Tools\nuke\html\bdopen.php on line 2 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in z:\home\localhost\www\Tools\nuke\html\bdopen.php on line 2 Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\Tools\nuke\html\bdopen.php:2 ) in z:\home\localhost\www\Tools\nuke\html\mainfile.php on line 85 |
либо конфиг не настроен, либо не в то место добавили mysql_query("SET NAMES 'cp1251'");
|
Иди в тему "если проблемы с кодировкой" |
Часовой пояс GMT +4, время: 21:32. |
Copyright © 2005 by Soniks