Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Установка (http://forum.mynuke.ru/forumdisplay.php?f=8)
-   -   Знаки вопроса после установки PHPnuke (http://forum.mynuke.ru/showthread.php?t=346)

typus 22.11.2006 20:14

всем привет,собственно,вот тут http://www.shkurki.ru/modules.php?n...er=asc&start=15
отписался,сил нет уже бороться с кодировками.В двух словах,после многочисленных манипуляций с базами,их кодировками и пр. весь сайт отображается нормально,кроме галереи 4images и flahchat-а,где остались еще недобитые знаки вопросов.
Все предложенные методы решения на всех форумах применял - результат тот же.Что нибудь похожее у кого - то было уже?Где -то есть варианты еще покопать?Если кому есть что сказать - очень жду,пожалуйста!!!!

DeDMakar 26.11.2006 02:02

Notice
 
Notice: ob_end_clean(): failed to delete buffer. No buffer to delete. in D:\usr\Apache\htdocs\mainfile.php on line 44

Notice: import_request_variables(): No prefix specified - possible security hazard in D:\usr\Apache\htdocs\mainfile.php on line 65
Что это за ошибки?
Версия PHP-NUKE-7.6_rus_patched_3.0_phpbb_2.0.19.7z

#umBer.[XIII] 03.12.2006 16:39

Вот ДООООЛГОО думал что делать, весь мануал зачитал до дыр уже и наконец нашёл. Есть такая фишка в нелокализованной версии нюки, что вместо печатного русского текста рисуются всякие там ?????? и больше ничего. В faq написано что нужно заменять htmlentities на htmlspecialchars. После 2 замен я уже устал и решил найти другой путь. И нашёл.
Нужно всего лишь в файле /db/mysql.php сделать следующее
++++++++++++
НАЙТИ
=============
$this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password);
=============
ПОСЛЕ, ДОБАВИТЬ
=============
mysql_query ("set names 'cp1251'");
=============
НАЙТИ
=============
$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
=============
ПОСЛЕ,ДОБАВИТЬ
=============
mysql_query ("set names 'cp1251'");
=============
СОХРАНИТЬ
=============
Работает без каких либо косяков на версии 7.9 :whistle:

awj7681 09.12.2006 01:10

У меня по этому вопросу есть свой.
Пробывал все вышеописанное - не совсем работает: при измененеии имени модуля на например "Журнал", то получается следущее - в базу данных заносится такой бред - "Æóðíàë ", если же в базе исправить на "Журнал" вручную через phpMyAdmin, то потом на странице отображается нормально, но если не исправлять, то на странице такое (того же слова "Журнал") - Æóðíàë. Вот такая фигня.

Вся база и таблицы залиты в ср1251 general ci. Также прописаны строки "mysql_query ("set names 'cp1251'");" в вышеупомянутых файлах в поддиректории "db".
Уже перечитал все страницы форума, все перепробовал что было написано. Версия нюки - 7.9.

Даже не знаю стоит ли задавать етот вопрос опять - "ЧТО ДЕЛАТЬ???"

#umBer.[XIII] 10.12.2006 13:14

Мой способ работает если юзать мускул а не pSQl или любые другие базы данных. Если надо чтобы ещё и в других базах всё работало, надо это же проделать с другими файлами баз данных.
Кстати, попробуй скачать официальную версию с http://phpnuke.org/ Я на ней делал. Мускул 4.1.6 Версия php - 5.1.6. Тестировалось на денвере (http://www.denwer.ru). Обычно я просто прописывал mysql_query ("set names 'cp1251'"); в файле конфига (после строк соединения с базой данных, но здесь подключение происходит через инклудирование файлов баз данных (смотря какая база используется)). Так же можно попробовать тупой способ, который в ФАКЕ написан (то бишь заменить во всех файлах html_entities на htmlspecialchars), но есть один минус - нюка содержит примерно 1000 файлов с этими строками (то есть если времени не жалко, можешь прям сейчас приступать, и мдвед скажет превед твоей нюке примерно через недельку - другую :-)
Ещё есть ссылка - http://www.shkurki.ru/modules.php?n...er=asc&start=15
Там тоже решается эта проблема. :-)
Вот щас ещё вспомнил. У тебя неправильно кодировка была задана при дампе базы данных. Она должна быть cp1251 иначе вместо норамльных русских букв высвечивается Äîáðî ïîæàëîâàò&u или что нибудь подобное. :-)
+++
В дополнение ко всему хочу сказать, что при правильное настройке никаких странностей не наблюдается + ко всему хочу добавить что если хочешь чтобы у тебя работала твоя нюка, лучше всегда их иметь две! Одна рабочая а вторая для тестирования и с отдельной базой данных, тогда всё будет вообще зашибись.
Протестировал на второй нюке, если всё работает, ставишь апгрейт на первую - рабочую предварительно сделав дамп базы данных.
+ ко всему (уже в 3 раз) хочу добавить что есть такой файл как lang-russian.php и в нём должна быть строчка :
//========================
define ("_CHARSET","cp1251");
//========================
Это, для тех кто не знает КОДИРОВКА САЙТА (портала, нюки - называёте как хотите).
=============================================
Надеюсь что данная проблема уже исчерпала сама себя. Так как у меня после всех проделанных действий заработали 3 нюки 3 разных версий. :-)
Удачи всем :-)
ЗЫ Ещё можно попробовать способ описаный на шкурках:
Код:
Raider писал(а): Если все выше перечисленное не помогло, то в 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());

awj7681 12.12.2006 15:21

Щас застрелюсь!!!!!!!!!!
Опять я буду доставать вас.
Нашел в логах также момент записи в базу данных кириллического названия модуля -
106 Query SHOW GLOBAL STATUS
106 Query SHOW INNODB STATUS
122 Query SELECT radminsuper FROM nuke_authors WHERE aid='awj7681'
122 Query set names cp1251
122 Query set character_set_client cp1251
122 Query set character_set_results cp1251
122 Query set collation_connection cp1251_general_ci
122 Query update nuke_modules set custom_title='Ôàéëè', view='0', inmenu='1', mod_group='0' where mid='3'
122 Query set names cp1251
122 Query set character_set_client cp1251
122 Query set character_set_results cp1251
122 Query set collation_connection cp1251_general_ci
122 Query SELECT title FROM nuke_modules ORDER BY title ASC
122 Query set names cp1251
122 Query set character_set_client cp1251
122 Query set character_set_results cp1251
122 Query set collation_connection cp1251_general_ci
122 Quit

Строка - update nuke_modules set custom_title='Ôàéëè', view='0', inmenu='1', mod_group='0' where mid='3'. Это на украинском (русском) – Файли(ы).

Какого хера запрос на обновление идет в таком виде????? И в базе сохраняется в таком же виде. Но если в ручную через phpMyAdmin исправить в самой базе, то загружается на страницу в нормальном виде.

Как я понял, проблема вот в чем. Вся кириллица сохраняется в базе данных как «html named entites», то есть, например, слово «Журнал» перекодируется в - Æóðíàë. Вот как избежать этого? И потом из базы грузить этот «html named entites» и отображает какой-то бред – Æóðíàë, то же слово, но в непонятной кодировке. Но если в ручную через phpMyAdmin исправить в самой базе на «Журнал», то загружается на страницу в нормальном виде, т.е. – «Журнал».

Так что проблемы отображения кириллических данных из самой базы – НЕТ. Есть только проблема их правильного сохранения, т.е. без конвертирования в «html (named) entites».

P.S. Все выше прочитанное мною уже проделано не один десяток раз.

BEN 12.12.2006 15:55

давайте базы и пароли я вам помогу сделать.

awj7681 13.12.2006 00:48

Цитата: Сообщение от BEN
давайте базы и пароли я вам помогу сделать.

Хотелось бы конечно. Но у меня все локально. Учусь только.... Хочу сначала разобраться локально, прежде чем на хост соваться.
BEN, может что-то новое мне посоветуешь? Хочеться как-никак разобратся в этом деле, но вот эт а проблема как кость в горле стоит, не дает дальше двигаться.

Может это связано как-то с самой MySQL? Имеет ли к єтому отношение например настройка "MySQL charset - UTF8", написано в окне phpMyAdmin?

Может сбросишь мне на мыло кофигурационные файлы *.php (типа config, admin, mysql, db, mainfile и т.д)? Версия у меня 7.9. Мой

Цитата: Сообщение от BEN
давайте базы и пароли я вам помогу сделать.

Хотелось бы конечно. Но у меня все локально. Учусь только.... Хочу сначала разобраться локально, прежде чем на хост соваться.
BEN, может что-то новое мне посоветуешь? Подскажешь в каком направлении двигаться? Хочеться как-никак разобратся в этом деле, но вот эта проблема как кость в горле стоит, не дает дальше двигаться.

Может это связано как-то с самой MySQL? Имеет ли к этому отношение например настройка MySQL - "MySQL charset - UTF8", (написано в окне phpMyAdmin)?

Может сбросишь мне на мыло кофигурационные файлы *.php (типа config, admin, mysql, db, mainfile и т.д)? Версия у меня 7.9. Мой мейл - awj7681@rambler.ru.

Может что-то с самим php???

BEN, СПАСИБО за желание помочь...

BEN 13.12.2006 08:27

Этот касяк происходит при экспортировании файла sql в Mysql. При экспорте выбирайте cp1251 и всё будет ок проверено!

awj7681 14.12.2006 10:02

Я уже выбирал ср1251 где только видел. Если залить базу с нуля и ничего не настраивать, то кирилица конечно отображается только знаками вопроса - ?????????????. Мне хватило только внести измененния в файл db.php. При этом знаки вопроса исчезли.

Но вопрос в том, что кирилица НЕ СОХРАНЯЕТСЯ в базе в нормальном виде!!! И уже запрос идет в изменненном виде! Хотя как видно из логов этому запросу предшествуют набор команд на измененение всего чего только можно на коировку ср1251. Может в настройках самого РНР что-то не так???

Еще заметил одну фишку. Если делать дапм базы, то кирилица експортируется нормально, тоесть, если потом открыть в блокноте файл sql самой базы, то в нем вся кирилица отображается нормально. НО!!! Если потом ее опять залить через импорт, при этом ВЫБРАВ кодировку файла СР1251, то в базе вся ета кирилица отображается в кодировке UTF-8. Не знаю почему.

По-моему, это что-то не так или с PHP или с MySQL. Версия сервера - 5.0.26 community-max nt-log (отображается в левой колонке окна phpMyAdmin).

Буду копать дальше.


Часовой пояс GMT +4, время: 23:39.

Copyright © 2005 by Soniks