Mat
Новичёк
Карма: -1
Сообщений: 13
|
 |
« : Май 24, 2007, 10:20:23 » |
|
Сразу после соединения с базой надо дать такие вот команды...
mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'");
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #1 : Май 24, 2007, 11:13:54 » |
|
mysql_query("set names 'cp1251'");
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #2 : Май 24, 2007, 11:20:49 » |
|
Обратите внимание, большинство профессиональных скриптов отлично справляются с этим сами либо на уровне создания таблиц с правильной кодировкой, либо предварительным запросом set names
|
|
|
Записан
|
|
|
|
nock
Новичёк
Карма: 0
Сообщений: 5
|
 |
« Ответ #3 : Май 30, 2007, 08:31:48 » |
|
а поконкретней можно расписать?... просто уже несколько часов пытаюсь изменить кодировку, на сайте поставлена CMS и столкнулся с проблемой кодировок... куда вводить вышеперечисленные запросы?
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #4 : Май 30, 2007, 09:14:49 » |
|
Я че то не понял...... че делать нужно??? Ну да.. у меня в таблицах как раз место букв -   ?? Че делать то??? Можно по шагам.... плизз...
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #5 : Май 30, 2007, 09:16:20 » |
|
кароче место букв одни вопросы... че делать???
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #6 : Май 30, 2007, 10:08:34 » |
|
Кароче я все понял все сделал... кароче у меня уже было это сделано!!! Но опять эти вопросы в таблицах! =((( ЧТо делать?
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #7 : Май 30, 2007, 10:19:03 » |
|
Любая приличная CMS уже умеет это делать. Я сам проверял Joomla, php-nuke, php-fusion, e107. Всё как одна - работают. Назовите CMS которая неработает, и я посмотрю от чего и почему.
По поводу самописного софта: 1. При создании таблиц вы их создаёте следующим образом: create table tbl_name(col_name int, col_name2 varchar(15)) charset=cp1251 (или charset=utf8, я предпочитаю utf-8) 2. Подключение к mysql выглядит так: mysql_connect("sql-1.ayola.net","login","pass"); mysql_select_db("db_name"); mysql_query("set names 'utf8'"); <--- вот это и всё.
Теперь обьясняю. В первом пункте вы сообщаете серверу, что все данные сохранять в желаемой кодировке. Например utf-8. Во втором пункте, при подключении к серверу, вы ему сообщаете что в течении данной сессии принимаемые и передаваемые данные будут в кодировке utf-8. Однако обратите внимание, что в этом случае и самой странице HTML надо быть в этой кодировке, иначе пользователь увидит вопросики.
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #8 : Май 30, 2007, 10:26:45 » |
|
да у меня не саомписный.... ) Блин у меня скрипт!!!! =) Кароче.... вот что у меня в подключении к этой базе БД: <?php $DB_HOST = "sql-1.ayola.net"; // ?? ??  - ТУТ ТОЖЕ ДОЛЖЕН БЫЛ БЫТЬ ТЕКСТ НА РУССКОМ, но ОПЯТЬ ЭТИ ВПОРОСЫ!!! Хотя на компе было все ок. $DB_USER = "zmail_104"; // ??   ??   ?? $DB_PASS = "ТУТ МОЙ ПАРОЛЬ"; //  $DB_NAME = "zmail_104"; // ?? ??  $connectdb=@mysql_connect($DB_HOST,$DB_USER,$DB_PASS); $selectdb=@mysql_select_db($DB_NAME); if (!$connectdb or !$selectdb) { header("Location: http://$_SERVER[HTTP_HOST]/notactive.php"); exit; } @mysql_query("SET CHARACTER SET cp1251"); @mysql_query("SET NAMES cp1251"); ?> Вродя все так.... на когда я захожу на сайт.. вроде все тож ок.. но когда я смотрю в какую либо таблицу... ну или еще что то место букв - ВОПРОСЫ!!! =((
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #9 : Май 30, 2007, 10:37:56 » |
|
И еще что делать при такой штуки: например на некоторых страницах моего сайта я вижу такое:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 4980736 bytes)
ЧТо это?
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #10 : Май 30, 2007, 10:40:45 » |
|
А чем вы смотрите в таблицу? Какой программой или скриптом? Например, если смотреть используя обычный пакетный mysql клиент, то ему тоже надо указывать кодировку. При просмотре из юникс-консоли, всегда используется текущая кодировка клиента. При просмотре из phpMyAdmind (именно так мы рекомендуем смотреть), там при входе есть выбор кодировки.
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #11 : Май 30, 2007, 10:44:15 » |
|
Вы меня не поняли! =) Я про другую таблицу!!!! =) Я? Я смотрю с помощью IE! Браузер такой... я смотрю сайт!!! А в нем есть некоторые таблицы... а них есть ВОПРОСЫ!!!
Вот и все! Так что делать?
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #12 : Май 30, 2007, 10:45:45 » |
|
И еще что делать при такой штуки: например на некоторых страницах моего сайта я вижу такое:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 4980736 bytes)
ЧТо это?
Это значит что скрипт попытался использовать больше памяти чем позволяется настройками системы. Лимиты подняли. Обычные сайты не должны замечать этих лимитов, это скорее защита от хакерских атак на сервера, поэтому если мы видим что у кого-то появляется такая ошибка - мы поднимаем ему лимит, дабы ошибки не было 
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #13 : Май 30, 2007, 10:46:33 » |
|
Ой поднимите мне лимит !
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #14 : Май 30, 2007, 10:47:14 » |
|
Вы меня не поняли! =) Я про другую таблицу!!!! =) Я? Я смотрю с помощью IE! Браузер такой... я смотрю сайт!!! А в нем есть некоторые таблицы... а них есть ВОПРОСЫ!!!
Вот и все! Так что делать?
Адрес сайта - в студию. Щас посмотрим.
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #15 : Май 30, 2007, 10:48:02 » |
|
Ой поднимите мне лимит ! Я уже отправил заявку, сейчас поднимут в 2 раза.
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #16 : Май 30, 2007, 10:49:21 » |
|
Тадам!!! - www.zmail.md8.ruЗначит так.... заходите на www.zmail.md8.ru/admin далее вводите пароль - ********* Ну как? ЧТо видите в таблице??? =)
|
|
« Последнее редактирование: Май 30, 2007, 10:58:13 от rurchik »
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #17 : Май 30, 2007, 11:03:58 » |
|
Я вижу что таблица создана в кодировка latin (iso-8859-1) И я вижу что при наполнении этой таблицы никто не указывал кодировку.
Как это оживить? Скорее всего никак - данные изначально записаны криво. Что сделать? По-хорошему, надо удалить всё, очистить базу, и поставить скрипт заново. При этом в инсталлятор скрипта дописать запрос set names с нужной кодировкой. У вас, я смотрю, сайт в виндовс-кодировке, значит "set names 'cp1251'". Обратите внимание, cp1251 берётся в кавычки.
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #18 : Май 30, 2007, 11:07:59 » |
|
ааа... ну я так и думал.. значит беру я install.php и туды: <?php $distr_name="ZmailCasher"; $SET NAMES 'cp1251'"; $distr_version="2.10.rc1"; if($_GET[install]!="") { include "setup.php"; $db_new=@mysql_query("select * from $tables[t_users] where (1=0)"); if (!$db_new) { @mysql_query("CREATE TABLE $tables[t_users] ( id int NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, reg_ip VARCHAR(30) NOT NULL, last_ip VARCHAR(30) NOT NULL, reg_date datetime NOT NULL, mod_date datetime NOT NULL, last_date datetime NOT NULL, last_payoutreq datetime NOT NULL, и т.д
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #19 : Май 30, 2007, 11:10:51 » |
|
Лучше всего будет если я взгляну на install.php и скажу куда и что надо вставлять.
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #20 : Май 30, 2007, 11:12:14 » |
|
конечно щас я его залью на сервак... вы его тогда сразу и отредактируйте если не сложно...плизз!
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #21 : Май 30, 2007, 11:13:54 » |
|
Все залил!
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #22 : Май 30, 2007, 11:26:37 » |
|
Значит так. Файл есть kernel/connect.ker.php Вы его уже редактировали. сейчас там есть две строки такие: @mysql_query("SET CHARACTER SET cp1251"); @mysql_query("SET NAMES cp1251");
Вместо них по-идее нужна одна строка: @mysql_query("SET NAMES 'cp1251'");
Я поправил, попробуйте сейчас установить это дело. Если вдруг не получится - приготовьте архив с этим скриптом, я и попробую это дело сам с нуля установить.
p.s. хотя это должно помочь, главное чтобы при установке вы использовали этот самый файл connect.ker.php, т.е. не перезаписывали его.
|
|
|
Записан
|
|
|
|
rurchik
Вникающий
 
Карма: -1
Сообщений: 201
|
 |
« Ответ #23 : Май 30, 2007, 11:29:40 » |
|
Ой спасибо вам огромное... а то я пока в этих делах ламер =)! Щас попробую....
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #24 : Май 30, 2007, 11:30:07 » |
|
Да, и ещё одно. Откройте файл install.php в блокноте windows и убедитесь что вы видите написанные в нём русские буквы  Проблема может быть ещё и в том, что сам файл install.php сохранён в сбитой кодировке, такое тоже бывает  К сожалению сейчас я этого проверить не могу - я в командировке, и под руками только Linux 
|
|
|
Записан
|
|
|
|
|