Previous 20

Oct. 20th, 2008

Блог переезжает на www.e64f.ru

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Блог переезжает на www.e64f.ru

Oct. 15th, 2008

Стандарты оформления кода PHP (Mad Rabbit)

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Публикую сабж. Очень полезная штука, когда в проекте более одного программиста.

Содержание

I. Введение

1. Почему стандартизация так важна
2. Принятие стандарта

II. Формирование имён

3. Выбирайте правильные имена
4. Имена классов
5. Имена методов
6. Имена аргументов в методах
7. Имена переменных
8. Имена элементов в массивах
9. Одиночные и двойные кавычки
10. Глобальные переменные
11. Имена функций

III. Форматирование

12. Правила расстановки фигурных скобок
13. Правила расстановки скобок () рядом с операторами и функциями
14. Правила по отступам/табуляциям/пробелам
15. Форматирование блоков if then else
16. Формат switch
17. Использование continue, break и ?:
18. Выравнивание блоков объявления переменных

IV. Документация

19. Несколько комментариев по комментариям
20. Формат описания gotchas
21. Зарезервированные слова для описания gotchas
22. Документация интерфейсов и реализаций
23. Документация по директориям

V. Разное

24. Повторное использование кода
25. Временное комментирование больших блоков

Стандарт кодирования на PHP (Mad Rabbit CMS).doc

Tags: ,

Список необходимой документации для разрабатываемой CMS (Mad Rabbit)

Originally published at Записки веб. разработчика e64f. You can comment here or there.

1) Введение для новичков (в картинках)
2) История создания
3) Лицензия на использование CMS
4) Стандарты (кодирования, наименования компонентов, …)
5) Руководство по установке
6) Глоссарий
7) Руководство администратора сайта
8) Как сделать … (модуль, блок, тему …)  или полное руководство разработчика

Tags:

Oct. 14th, 2008

Архитектура CMS (Mad Rabbit)

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Давным давно начинал создавать свою собственную CMS, теперь настало время к ней вернуться.

Многие моменты переосмыслены.

Выкладываю изменённую схему.

Tags:

Oct. 7th, 2008

Как сделать защиту гостевой, форума, блога на основе капча картинки

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Любой кто имеет в сети сайт, рано или поздно сталкивается с проблемой спама. Не в смысле почтового спама, а спама в гостевую книгу, форум, блог, вобщем везде, где посетители сайта могут оставлять свои сообщения. Сразу стоит сказать, что хотя и бывает, что спам рассылается вручную, т.е.  живым человеком - это бывает редко, обычно это делает специальная программа, которая может: изменять свой IP адрес, распознавать каптча картинку, постить разные сообщения, отвечать на свои же сообщения, но уже под другим пользователем. И много чего еще, как говорится на каждую стандартную защиту находится программист, который сделает программу или модуль к программе и защита будет повержена.

Обычно защита от нежелательного программного постинга спама, делается с помощью каптчи, но проблема в том что в распространенных стандартных движках каптча тоже стандартна. И всегда находится заказчик, желающий проспамить те несколько миллионов форумов, где установлен стандартный форум с одной и той же картинкой защиты.

Перехожу  к делу, короче говоря если хотите чтобы вас не спамили нужно делать свою уникальную каптчу. Если не можете сами программировать, наймите кого нибудь, думаю что цена в 50$ не такая высокая.

Как должна работать каптча

Встречал я в сети ресурсы, где спамеру вообще ничего не нужно было распознавать, текст написанный на картинке, в открытом виде засовывался в куки. Так делать непреемлемо, потому что данные кук, можно вытащить программно.

Встречал также ресурсы, где в куки записывали результат хеш функции md5 от строки что написана на картинке, ну эти ребята давали спамерам просто так проверку правильности распознавания, что тоже непреемлемо.

Правильно делать так, строка на картинке = str1 и строка в куках = str2, генерятся случайным образом независимо друг от друга. STR2 нужна для того чтобы передавать ее в форму в открытом виде. STR1 написана только на картинке каптча.  Обе строки связаны между собой в таблице. Т.е. человек в скрытом поле формы(или куках) имеет STR2, STR1 введет с картинки, и когда форма отправится скрипту скрипт достанет из таблицы запись по STR2 и сравнит STR1 из таблицы и строку введенную пользователем.

Это было небольшое отступление от темы создание каптчи, просто нельзя делать вышеуказанные ошибки.

Делаем генератор картинок

Первое, что нужно сделать, это найти уникальный шрифт. Взял с полки диск с 1 000 000 шрифтов и вперед. Решил выбирать только из рукописных шрифтов, набралось около 20 штук.

Еще насчет шрифтов, можно использовать рандомом все 20 шрифтов, например каждый раз писать случайным фонтом все буквы. Можно каждый символ на картике писать случайно выбранным шрифтом. Я для себя решил писать всегда одним и тем же шрифтом, если начнется спаминг, просто сменю шрифт на следующий.

Теперь насчет шума. Всякие шумовые помехи встречаются почти на всех капчах. От себя скажу, из опыта программного распознавания капч, шум больше мешает человеку распознать каптчу, чем программе. Может быть поэтому на капче от гугла нет никаких шумов. Вобщем свою каптчу решил делать без шумов.

Исходный код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
// Тип содержимого – картинка формата PNG 
header("Content-type: image/png");
 
// создаем картинку размером 130X40
$img=imagecreatetruecolor(180, 80) or die('Cannot create image');
 
// заполняем фон картинки белым цветом
imagefill($img, 0, 0, 0xFFFFFF);
 
$x=0;
$i = 1;
$sum = "";
$fonts = array(
'./BIRCH_C.TTF', 
 './CHAMPGNE.TTF', 
'./EASTSIDE.TTF', 
'./GISMONDA.TTF', 
'./OLGA_C.TTF', 
'./RIVERSDE.TTF', 
'./SSR56__C.TTF', 
'./STAC222N.TTF', 
'./STEVE.TTF', 
'./VICTORIA.TTF'
);
 
 
//$font = $fonts[rand(0, sizeof($fonts)-1)];
$font = './OLGA_C.TTF';
 
// выводим одну цифру за один проход цикла (всего 5 цифр)
while ($i++ <= 5)
{
   // выводим текст поверх картинки
   imagettftext(
   $img,          // идентификатор ресурса
   rand(12,25),   // размер шрифта в пикселях
   rand(-35,35),  // угол поворота текста
   $x=$x+30, 25+rand(0,10), // координаты (x,y), соответствующие левому нижнему
                            // углу первого символа
   imagecolorallocate($img, rand(0,128), rand(0,128), rand(0,128)), // цвет шрифта
   $font, // имя файла со шрифтом
   $rnd=rand(0,9)); // случайная цифра от 0 до 9
   // Собираем в одну строку все символы на картинке
   $sum = $sum.(string)$rnd;
}
 
//Не забудьте $sum записать в таблицу как STR1
 
// выводим готовую картинку в формате PNG
imagepng($img);
// освобождаем память, выделенную для картинки
imagedestroy($img);
?>

Вот, что получилось

Моя каптча

Вся работа заняла не более 30 минут.

Sep. 18th, 2008

Книги, привезенные из Санкт-Петербурга

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Ездил на неделю в Санкт-Петербург, на курсы по JavaScript (проводил www.avalon.ru), купил там 4 книги

JavaScript Народные советы
Люблю книжки по программированию, которые разбирают проблемы (начал читать)
Информационная архитектура в интернете
Редкое сочетание для книги по IT: легкого стиля изложения и высокой смысловой ценности
Оптимизация и продвижение сайтов в поисковых системах
Год назад читал pdf файлы докладов с конференции господина Ашманова, недавно в читалке Sony Reader прочитал книгу Ашманова (записки-воспоминания о работе Ашманова в rambler.ru) “Жизнь внутри пузыря”, вобщем тема купленой книги и автор достаточно интересны
CMS Drupal руководство по разработке системы управления сайтом
Давно мечтал купить такую книгу, подробный разбор концепций + листинги состоявшейся CMS

Sep. 4th, 2008

Отчет о проделанной работе (Распознавание каптч).

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Последнее время в основном работал в сотрудничестве в NMAN-ом над созданием распознавалок каптч.

Пора подвести итоги. Привожу примеры “сделанных” каптч.

Форумный движок PHPbb 2 - хотя выпущена 3 версия все еще достаточно сильно распространен
Очень простая каптча, распознавание 100%
Очень простая каптча, распознавание 100%
выхлоп примерно 75% удачных распознаваний
выхлоп 100% удачных распознаваний
выхлоп примерно 80% удачных распознаваний
выхлоп примерно 75% удачных распознаваний
выхлоп примерно 99% удачных распознаваний
выхлоп 100% удачных распознаваний
выхлоп 100% удачных распознаваний
выхлоп примерно 75% удачных распознаваний
выхлоп примерно 95% удачных распознаваний
выхлоп 100% удачных распознаваний
выхлоп примерно 75% удачных распознаваний
выхлоп примерно 85% удачных распознаваний
выхлоп 100% удачных распознаваний
выхлоп примерно 85% удачных распознаваний
выхлоп примерно 99% удачных распознаваний

Результатами данных работ стали не только сами программы распознавания, но и отладка технологий распознавания каптч как таковых. :-)

Aug. 29th, 2008

Верной дорогой идете товарищи …

Originally published at Записки веб. разработчика e64f. You can comment here or there.

За последние полтора года зп PHP программеров изрядно подросли. В Москве уже не так редка сумма превышающая 2500 $. А удаленно предлагают 1000$ для начинающего студента, 1500$ для человека кто разберется в какой нибудь CMS или сможет сопровождать движок магазина, 2000$ предлагают за удаленную работу высококласного PHP программиста.

Это просто праздник какой-то (ц) Карабас-Барабас

Tags:

Jul. 21st, 2008

Сайты компаний проводящих курсы по IT дисциплинам

Originally published at Записки веб. разработчика e64f. You can comment here or there.

По причине того что поисковики выдают много мусора на запросы типа Курсы Java или Обучение Oracle.
Вобщем публикую, может кому пригодится:
http://www.avalon.ru/
http://www.microinform.ru/
http://www.specialist.ru/
http://academy.it.ru/
http://edu.softline.ru/
http://www.academy.ru/
http://www.hth.kz/
http://www.sibinfo.ru/
http://www.cift.ru/
http://www.redcenter.ru/
http://www.limtu.spb.ru/
http://www.education.ru/
http://www.fors.com/
http://www.ucit.ru/
http://www.konto-spb.ru/

Список никак не ранжирован.

Jul. 17th, 2008

Распознавание captcha от Ивана Склярова (www.sklyaroff.ru)

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Не помню как забрел на блог Ивана Склярова, но читать мне его понравилось.

И в одном из постов Иван предлагает бесплатно взять скрипт генерации капчи http://www.sklyaroff.ru/comm.php?mess=8

И вот что я ему написал в коментарий:

2008-07-11 08:41:23 e64f пишет:
Добрый день!
Ваша капча картинка относится к разряду примитивных.
Могу на спор сделать программу распознавалку ваших картинок за 2 дня.
Если интересует, то вот инфо для связи
————————————–
Почта: VMatvienko@gmail.com
Сайт: vmatvienko.foxhole.ru
С уважением Матвиенко Валерий.

На что последовал ответ:

Напиши, посмотрим.

Заняло это правда чуть больше 2 дней, по причине того, что большой загруз на работе.

Представляет из себя консольное приложение которому на вход подается путь к картинке, а приложение выдает что на картинке написано.

О тонкостях реализации пожалуй умолчу. )

Вот видео 2 мб. http://vmatvienko.foxhole.ru/captcha.avi с доказательством.

Еще хочу сказать, что делал все это я не один, а нас сейчас двое, наши ники e64f и nman.

Jun. 17th, 2008

Очередные грабли: MySQL, PHP + (библиотеки: DBSimple, JSCalendar)

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Буквально 3 дня назад имел счастье поразбираться (полазить по кодам) - такое случается редко, и после подобных разборок довольно хорошо поднимается экспириенс. А что еще нужно программисту кроме регулярного поднятия уровня опытности!?

Описание диспозиции

Есть форма, в этой форме есть поле для ввода даты/времени, для удобства ввода прикручена к этому полю JavaScript библиотека JSCalendar (симпотичный и удобный выпадающий календарик)

По сабмиту дата/время вставляется в таблицу в виде UnixTime, для конвертации в формат UnixTime использую следующую функцию

1
2
3
4
5
function format_to_unixtime($t)
{
   list($date, $time) = split(' ', $t);list($day, $mon, $year) = split("/", $date);
   list($hour, $min) = split(':', $time);    return mktime($hour, $min, 0, $mon, $day, $year);
}

Для работы с базой данных MySQL использую библиотеку Дмитрия Котерова DBSimple.

Проблема

Проблема состояла в том, что когда просматривал список записей, даты отличалась от тех которые вводил на 6 часов.

Сложилось стойкое впечатление, что на каком-то этапе к дате плюсутся 6 часов из за смещения по гринвичу.

Следующий тестовый пример показал что дело в функции mysql FROM_UNIXTIME

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
include_once('conf.php');
include_once('lib/dbsimple/mysql.php');
//Подключаемся в MySQL
$db = DbSimple_Generic::connect("mysql://".$mysql_user.":".$mysql_passwd."@".$mysql_host."/".$mysql_db);
// Устанавливаем обработчик ошибок MySQL.
$db->setErrorHandler('databaseErrorHandler');
$db->setIdentPrefix($mysql_table_prefix);
 
$dt = '18/06/2008 10:10';
 
$db->query("insert into test (dt) values (?)", format_to_unixtime($dt));
 
echo $dt."<br>";
echo format_to_unixtime($dt)."<br>";
 
$recs = $db->select("select id, dt, FROM_UNIXTIME(dt, '%d/%m/%Y  %H:%i') ddt from test");
print_r($recs);
 
function format_to_unixtime($t)
{
list($date, $time) = split(' ', $t);
list($day, $mon, $year) = split("/", $date);
list($hour, $min) = split(':', $time);</strong>
 
return mktime($hour, $min, 0, $mon, $day, $year);
}
?>

18/06/2008 10:10
1213783800
Array
(
[id] => 1
[dt] => 1213783800
[ddt] => 18/06/2008 16:10
)

А вот что написано на странице http://dev.mysql.com/doc/refman/6.0/en/date-and-time-functions.html

FROM_UNIXTIME() functions return values in the connection’s current time zone, which is available as the value of the time_zone system variable.

Вывод: читать документацию надо чаще.

May. 26th, 2008

Денвер (Denwer)

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Про пакет программ Дмитрия Котерова Denwer, встречал упоминания много раз. В этом месяце наконец случилось, взял на вооружение.

Денвер оказался очень удобной штукой, если его ставить на флешку. Считай что веб. сервер в кармане: apache, mysql, php - все настроено, и уже работает после запуска файла Run.exe на любом компьютере, даже где этот денвер не ставился. Например, у  заказчика вставил флешку, кликнул по Run.exe и можно уже обращаться по доменному имени проекта, кстати очень понравилось, что домены(проекты), вернее не не так, достаточно создать папку www.project.ru, а внутри ее в папке www создать index.php, перезапустить денвер, как уже в браузере можно обращаться к этому домену.

Есть еще какой то интересный наворот в виде сборщика отправляемой сайтом почты, но это я пока не опробовал.

Рекомендую !!! Взять безвозмездно можно на http://dklab.ru/

Tags: , ,

Apr. 15th, 2008

Глюки с MSSQL сервером

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Значит ситуация такая, есть у меня на работе замечательная программы 1С-архив. Использует она в качестве СУБД MSSQL. Собственно я это все хозяйство не сопровождаю, но есть на нашем внутреннем сайте отчеты по исполнению заданий, данные этих отчетов берутся из MSSQL.

Отчеты имеют параметрами:
Автора задания;
Исполнителя;
две даты;
Исполнение: Просрочено/Вовремя/Все;
Состояние: В работе/Выполнено/Все.

Все прекрасно работало!

Звонит значит мне админ 1С-архива, через много месяцев работы отчетов и просит зайти к нему.

А дело оказалось в том, что при обращении к хранимой процедуре с опр. параметрами выдавалось 3 записи в браузере (PHP, Apache, Solaris). А с теми же параметрами в программе MS SQL Server Management Studio (Windows XP)выдавалось четыре записи.

Реальный такой полтергейст.

Для чистоты эксперимента распечатал переменную SQL в браузере, в MS SQL Server Management Studio также 4 записи, а в браузере 3.

Ппц.

Посмотрели логи сервера, запросы попадающие серваку идентичны. Много было высказано в адрес Microsoft…

Решение

Причина была в том, что сравнение дат давало сбой. В SQL даты передавались строково и преобразовывались CONVERT(SMALLDATETIME, @FromDate) где @FromDate - строка

А нужно было

CONVERT(SMALLDATETIME, @FromDate, 104)

Применение данной функции было в нескольких местах, и только в одном месте допущена опечатка.

Зы. Процедуру писал не йааа :-)

Mar. 18th, 2008

Как сделать PDA версию сайта (для смартфона, комуникатора, КПК)

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Сейчас потихоньку настают времена, когда многие обзаводятся карманными средствами интернет связи, ведь удобно иметь почту в кармане да еще и браузер.

Так вот насчет браузеров, вернее о сайте (PDA) оптимизированном  для карманного девайса сейчас и поведу речь. Хм. в принципе обычные сайты, почти нормально просматриваются в карманном устройстве, особенно после того как я установил опцию резать страничку на 3 полосы и показывать в 1 столбец, результатом этого стало то, что исчезла необходимость в горизонтальной прокрутке. Так вот отличия по пунктам, которые повысят комфорт.

1) Разрешение экрана у мобильных устройств гораздо меньше, чем у настольного монитора обычно 320 х 240

Из этого следует что …

- картинки должны быть по ширине не больше 240 px

- трехколоночная и даже двух колоночная верстка шаблона страницы не нужна. Долой табличную вестку!

- вестку на DIV -ах тоже долой

- элементы форм ввода должны тоже вписываться в размер экрана, горизонтальная прокрутка это просто ужас

- а как же верстать? да очень просто: Текст, картинка(лучше кстати совсем без картинок, в крайнем случае логотип и все), ссылки - все это с использованием тегов: p, br, h1-h6, a, img, b, i. Никто не запрещает использовать стили и javascript, а оно надо?

2) Кстати насчет javascript, на PDA устройстве никогда не возникнет событие повешенное на наведение курсора на объект

- потому, что  курсора то нету, есть стилус который позиционируется не касаясь экрана, а прикосновение к экрану это уже onclick

 3) Еще насчет javascript, сдается мне не все js-коды  прекрасно работающие  на ПК будут работать на PDA

- где бы раздобыть список работающего хотя бы для пэдэашных IE и Opera?

- есть ведь еще много экзотических браузеров, которые вообще не поддерживают javascript

В последних строках поста отсылаю к статье на буржуйском языке

Make your site mobile friendly 

http://www.thinkvitamin.com/features/css/make-your-site-mobile-friendly

Mar. 13th, 2008

Создание картинок на лету с помощью PHP - проблемы с русским текстом

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Ниже приведенный php код не печатал адекватно русские буквы

1
2
3
4
5
6
$im = imagecreate(140, 50);
imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 0, 0, 0);
$txt = "Привет";
imagettftext($im, 12, 0, 45, 15, $text_color,'verdanab.ttf', $txt);
imagepng($im);

Пробовал заставить работать по разному, скармливал например в UTF, windows-1251, KOI8-r кодировках, ничего не помогло.

Вспомнил, что на сайте работает библиотека jpgraph, которая выводит всякую графику для анализа в виде а-ля Excel. Данная библиотека также как и вышеприведенный код, генерирует графику через GD. Там на графиках русский был читабельный.
Начал раскопки …

1
2
3
4
5
6
7
8
9
10
11
12
function iso2uni ($isoline)
{
   $isoline = convert_cyr_string($isoline, "w", "k");
   $isoline = convert_cyr_string($isoline, "k", "i");
   for ($i=0; $i < strlen($isoline); $i++)
   {
      $thischar=substr($isoline,$i,1);
      $charcode=ord($thischar);
      $uniline.=($charcode>175) ? "&#".(1040+($charcode-176)). ";" : $thischar;
   }
   return $uniline;
}

В итоге, пропустив текст через функцию, на картинке был уже читаемый текст.

ЗЫ. Я так понимаю, что у многих людей таких проблем не возникает, т.к. в интернете по форумам подобного решения не видел, обычно у людей проблема в том, что библиотеки не установлены.

Tags:

Mar. 4th, 2008

Ссылки на ресурсы посвященные шифровальной машине Энигма (Enigma)

Originally published at Записки веб. разработчика e64f. You can comment here or there.

1) Самая первая ссылка на материал из Википедии

http://ru.wikipedia.org/wiki/%D0%AD%D0%BD%D0%B8%D0%B3%D0%BC%D0%B0

Особенно порадовало, что там кроме всего прочего дано математическое описание.

2) Прокт Открытые Системы - статья “Тайны проекта ULTRA”

http://www.osp.ru/os/2003/07-08/183294/

Про взломщиков Энигмы.

3) Страница Википедии посвященная Алану Тьюрингу

http://ru.wikipedia.org/wiki/%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%2C_%D0%90%D0%BB%D0%B0%D0%BD

4) Симулятор шифровальной машины (можно покрутить колесики настроек онлайн)

http://enigmaco.de/enigma/enigma.html

5) Посмотреть фотографии самой машины и ее отдельных деталей

http://www.jproc.ca/crypto/enigma.html

6) Назвать текст следующей ссылки статьей язык не поворачивается, но и книгой не назовешь. Хм, наверное описание (на английском)
The Enigma cipher machine

Feb. 29th, 2008

Сайт недели http://www.htaccesseditor.com/en.shtml

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Создания .htaccess файлов онлайн.

Порой действительно очень нужная вещь :-)

Feb. 26th, 2008

CMS - статья в Компьютерре, плюс продолжение темы (ответ автору) на cmslist.ru

Originally published at Записки веб. разработчика e64f. You can comment here or there.

CMS для домохозяек: гонки на выживание
Автор: Андрей Шипилов
Опубликовано в журнале “Компьютерра” №32 от 06 сентября 2006 года
http://www.computerra.ru/284826/

Джинса для домохозяек
08.09.2006
http://cmslist.ru/articles/dzhinsa_dlya_domohozyaek/

Хотя написанное почти двухгодичной давности всеже, рекомендую к прочтению.

Tags:

Feb. 12th, 2008

Посмотрел доклад про Flex с DVD диска #3 PHPConf 2007

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Adobe Flex — технология для создания Rich Internet Applications. Flex — это родственная Flash технология, основанная на описании интерфейса приложения (и обработчиков событий, связи источников данных с объектами и т.п.) с помощью диалекта XML — MXML. Flex приложение может компилироваться на сервере, а может — из IDE (начиная с Flex 2), как и во Flash, результатом является файл swf, исполняемый Flash Player.

Подробнее на http://ru.wikipedia.org/wiki/Adobe_Flex

Вообще технология впечатлила, похоже, что начну с ней разбираться.

Feb. 7th, 2008

Настройка MySQL 4.1.14 для работы в кодировке windows-1251 (она же cp1251) на Gentoo Linux

Originally published at Записки веб. разработчика e64f. You can comment here or there.

Проблема состояла в том что dump сохранялся вопросиками, сортировка выполнялась сервером не по алфавиту, и это только основные причины.

Промучился с настройкой достаточно большое количество времени, перечитал кучу страничек.

Рекомендую ознакомиться:

Работа MySQL со строками
http://sqlinfo.ru/articles/info/2.html

Обновление сервера 3.23 и 4.0
http://sqlinfo.ru/articles/info/5.html

Проблемы с русским языком и как их решать
http://www.sql.ru/faq/faq_topic.aspx?fid=152

http://phpfaq.ru/charset

А вообще везде пишут что достаточно поставить

default-character-set=cp1251

Кое кто указывает еще

character-set-server=cp1251
collation-server=cp1251_general_ci

Но на данных настройках mysql не выдавал правильно русские буковки на сайте и в утилите SQLyog.

А в SQL Manager for MySQL выдавал правильно :-)

Решение:

В раздел [mysqld] необходимо добавить следующее:

default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

последняя строка не сработала на MySQL версии 4.1.x, но в версии 5.х сервер нормально запустился. В четверке все работает и без последней строки, т.е. решение моих проблем в init-connect="SET NAMES cp1251".

Еще заместо этой строки в my.cnf помогает в PHP скрипте:

1
mysql_query('SET NAMES "cp1251"', $mysql_con);

Без этого все было вопросиками.

Tags:

Previous 20

October 2008

S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Advertisement

Page Summary

Syndicate

RSS Atom
Powered by LiveJournal.com