Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Какую кодировку выбрать?

Сообщения:  [1-10]   [11-20] 

 
 автор: Eugene77   (07.06.2007 в 22:01)   письмо автору
 
   для: Trianon   (07.06.2007 в 20:59)
 

>и тем не менее это так. Помимо очевидной защиты от атак работа через отдельного пользователя позволяет избегать этого запроса (если, конечно, это умалчиваемая кодировка для типичных пользователей сервера)

Какого запроса? И что такое умалчиваемая кодировка?

>>Кстати, что это такое - этот init-connect?
>Может это тот файл, который вызывается каждый раз инклудом для соединения с базой?

>Это строка конфигурации в файле my.ini (my.cnf) В которой можно записать оператор, который >должен исполняться сразу после установки соединения.

Тогда правильно ли я понимаю, что работоспособность сайта не должна пострадать если я уберу эту строку из my.ini, а взамен поставлю вот такой запрос: mysql_query("SET NAMES 'cp1251'"); в файл инициализации соединения с базой?

>Если Вас интересует мое мнение,. то в настройках apache-php нужно
задать умалчиваемую кодировку.
задать обработку всех ошибок, даже нотайсов
для боевого сервера - задать блокировку вывода ошибок в поток браузера и направление их в лог-файл
отключить режим register globals
отключить режим register long arrays
отключить режим magic quotes

Что такое умалчиваемая кодировка?
Чем провинились register long arrays?

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

Спасибо за моральную поддержку! Но - это жизненная позиция альпиниста, любителя путешествий, итп. Естественно, хорошим програмистом можно стать только полюбив сою работу. У меня другая ситуация. Накопился интересный content, выбросить жалко - купил компьютер и стал сочинять сайт :)
Зачем мне все ваши тропинки? Мне надо одну - самую короткую.

   
 
 автор: Trianon   (07.06.2007 в 20:59)   письмо автору
 
   для: Eugene77   (07.06.2007 в 20:29)
 

>>Написать где? Обычно пишут SET NAMES 'cp1251' . В init-connect my.ini
>>Обычно этого хватает, если конечно не лезть к MySQL от имени пользователя root.
>
>Интересноо! Вот этого я не знал. Я и не думал создавать на localhost ещё какого-то пользователя - думал зачем!? Все обращения делал от root. Что это меняет?
>
и тем не менее это так. Помимо очевидной защиты от атак работа через отдельного пользователя позволяет избегать этого запроса (если, конечно, это умалчиваемая кодировка для типичных пользователей сервера)

>>Что такое совместимость с PHP?
>
>Я подразумевал под этими сам точно не знаю что, но, например, при нестыковке кодировок записи в базу у меня элементарно не добавлялись. Подозреваю, что при при некоторых настройках часть символов возможно будет заносить в текстовые поля, а при других настройках нельзя, или даже более того, какие-нибудь сбои возникнут. Я не силён в этой теме с базами, вот и спрашиваю, как с ними обращаться, какие есть особенности связанные с разными кодировками?

Особенностей нет. Но не надо считать это настройками. Как только у Вас есть текст (а не просто набор байт) так сразу появляется кодовая страница, в которой он представлен.
Есть три основных переменные, связанные с подключением к MySQL
character_set_client
character_set_results
character_set_connection

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

>Кстати, что это такое - этот init-connect?
>Может это тот файл, который вызывается каждый раз инклудом для соединения с базой?

Это строка конфигурации в файле my.ini (my.cnf) В которой можно записать оператор, который должен исполняться сразу после установки соединения.

>Есть операторы, функции итд, указывающие интерпретатору PHP что делать, а есть такие инструкции, которые не вызывают сами по себе явных действий, а указывают как обращяться с текстовыми отрывками.

Не стоит делить действия на явные и неявные. php - интерпретируемый язык. В нем все операторы что-нибудь да делают.

>Читая форум я понял, что многие, например не в восторге от "магических кавычек",
>следовательно, я делаю вывод - их лучше не включать - тоже момент настройки... Это всё?
Безусловно.

Если Вас интересует мое мнение,. то в настройках apache-php нужно
задать умалчиваемую кодировку.
задать обработку всех ошибок, даже нотайсов
для боевого сервера - задать блокировку вывода ошибок в поток браузера и направление их в лог-файл
отключить режим register globals
отключить режим register long arrays
отключить режим magic quotes

>>php - это не автомобиль. Не карбюраторный двигатель. Хотя даже последний настраивают под >манеру езды конкретного водителя.
>
>Вы знаете, что такое PHP, а я пока нет - поэтому и спрашиваю. Метод объяснения "от противного" рядом с конструктивным подходом, по-моему никогда не лежал. Хотя может быть именно сейчас лёг, но я не заметил.
>Как я понял, что мне важно попробовать задать именно этот вопрос? Я подумал, что большинство програмистов развивали своё мастерство эволюционно: Писали в начале маленькие программы, потом по-больше. Когда сталкивались с проблемами - искали решение. Я собирался идти так же. Но мне недавно пришлось полностью переустановить localhost - и о чудо! Часть программы сама собой стала выдавать несколько иные результаты. Видимо я что-то иначе указал в настойках не узнать теперь что именно.

Ну почему же.
Если Вы видите, что они отличаются, то можете попытаться выяснить - почему.

>Теперь я понимаю, что к вершине горы ведут несколько тропинок. Каждая со своей полосой препятствий. Вершина - это сайт, который я делаю. А тропинки - это разные кодировки. Хотя может быть и не только кодировки... Вот мне и хотелось бы выбрать ту тропинку, которая подошла бы под мою "манеру" передвижения, а не просто ткнуться куда-то случайным образом без карты и компаса. Уф!
> Ну я честно старался всё объяснить, если и теперь не получилось, то - сдаюсь!

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

   
 
 автор: Eugene77   (07.06.2007 в 20:29)   письмо автору
 
   для: Trianon   (07.06.2007 в 10:00)
 

>Написать где? Обычно пишут SET NAMES 'cp1251' . В init-connect my.ini
>Обычно этого хватает, если конечно не лезть к MySQL от имени пользователя root.

Интересноо! Вот этого я не знал. Я и не думал создавать на localhost ещё какого-то пользователя - думал зачем!? Все обращения делал от root. Что это меняет?

>Что такое совместимость с PHP?

Я подразумевал под этими сам точно не знаю что, но, например, при нестыковке кодировок записи в базу у меня элементарно не добавлялись. Подозреваю, что при при некоторых настройках часть символов возможно будет заносить в текстовые поля, а при других настройках нельзя, или даже более того, какие-нибудь сбои возникнут. Я не силён в этой теме с базами, вот и спрашиваю, как с ними обращаться, какие есть особенности связанные с разными кодировками?

>_SERVER["HTTP_ACCEPT_CHARSET"] - это не серверная, а клиентская переменная. Она >устанавливается браузером. И если Вы собираетесь её анализировать, то всякий разговор о >Windows-1251 становится бессмысленным.

Да, точно, что-то я в небо как в копеечку - не промахнулся! Видно совсем уже задремал сидя за монитором!

>Что Вы называете настройкой?

А вы ничего настройкой не называете? Признаться, мне ваша терминология интересней, чем моя. Свою-то я по ходу изобретаю, мучительно подбирая слова, чтобы выразить вопрос с которым столкнулся. Я пока не знаю что как правильно назвать. Познания в риторике, в том числе е компьютерной, сами не возникают, а только по мере опыта накапливаются.
Но вот написание строки default-character-set=cp1251 в my.ini, я думал можно отнести к разряду настроек. Так же SET NAMES 'cp1251' В неком init-connect, о существовании которого я не догадывался, тоже может угодить в разряд настроек, в моей наивной классификации. Кстати, что это такое - этот init-connect? Может это тот файл, который вызывается каждый раз инклудом для соединения с базой?
Ну а если попробовать сочинить фразу типа регулярного выражения, то получится следующее:
Есть операторы, функции итд, указывающие интерпретатору PHP что делать, а есть такие инструкции, которые не вызывают сами по себе явных действий, а указывают как обращяться с текстовыми отрывками. Вот о случаях, когда к ним пришлось обращаться, я сейчас и спрашиваю.

Читая форум я понял, что многие, например не в восторге от "магических кавычек", следовательно, я делаю вывод - их лучше не включать - тоже момент настройки... Это всё?

>php - это не автомобиль. Не карбюраторный двигатель. Хотя даже последний настраивают под >манеру езды конкретного водителя.

Вы знаете, что такое PHP, а я пока нет - поэтому и спрашиваю. Метод объяснения "от противного" рядом с конструктивным подходом, по-моему никогда не лежал. Хотя может быть именно сейчас лёг, но я не заметил.
Как я понял, что мне важно попробовать задать именно этот вопрос? Я подумал, что большинство програмистов развивали своё мастерство эволюционно: Писали в начале маленькие программы, потом по-больше. Когда сталкивались с проблемами - искали решение. Я собирался идти так же. Но мне недавно пришлось полностью переустановить localhost - и о чудо! Часть программы сама собой стала выдавать несколько иные результаты. Видимо я что-то иначе указал в настойках не узнать теперь что именно.
Теперь я понимаю, что к вершине горы ведут несколько тропинок. Каждая со своей полосой препятствий. Вершина - это сайт, который я делаю. А тропинки - это разные кодировки. Хотя может быть и не только кодировки... Вот мне и хотелось бы выбрать ту тропинку, которая подошла бы под мою "манеру" передвижения, а не просто ткнуться куда-то случайным образом без карты и компаса. Уф!
Ну я честно старался всё объяснить, если и теперь не получилось, то - сдаюсь!

   
 
 автор: Trianon   (07.06.2007 в 10:00)   письмо автору
 
   для: Eugene77   (06.06.2007 в 20:31)
 

>Как я понял, сомнений не вызывает, что на страницах сайта пишем: charset=windows-1251. WAP версия пока не намечается, да и прикручивать что-то тоже нет планов, всё намечается писать руками.
>Ясно.
>Что теперь с настройкой MySQL?
>Написать default-character-set=cp1251 и всё?

Написать где? Обычно пишут SET NAMES 'cp1251' . В init-connect my.ini
Обычно этого хватает, если конечно не лезть к MySQL от имени пользователя root.

>Или есть ещё какие-то тонкости, позволяющие повысить совместимость с PHP?

Что такое совместимость с PHP?

>Кроме того, серверная переменная _SERVER["HTTP_ACCEPT_CHARSET"] тоже должна на что-то влиять... То есть, localhost, так же желательно неким образом настроить, чтобы после публикации сайта не возникло неожиданностей.

_SERVER["HTTP_ACCEPT_CHARSET"] - это не серверная, а клиентская переменная. Она устанавливается браузером. И если Вы собираетесь её анализировать, то всякий разговор о Windows-1251 становится бессмысленным.

>Может быть есть и ещё что-то влияющее на работу с регулярными выражениями и разными преобразованиями текста, я не знаю пока что. Подскажите! Какие варианты настройки вы пробовали? Что получилось? На чём остановились?

Что Вы называете настройкой?

>Немного сумбурно получилось.
>Ещё раз спрошу главное:
>Как различные настройки окружения влияют на работу PHP со строками?
>Каковы оптимальные настройки? Почему?

php - это не автомобиль. Не карбюраторный двигатель. Хотя даже последний настраивают под манеру езды конкретного водителя.

   
 
 автор: Eugene77   (06.06.2007 в 20:31)   письмо автору
 
   для: Loki   (06.06.2007 в 14:09)
 

Спасибо всем, что поделились опытом!
Но давайте всё-таки ещё чуть точнее.
Как я понял, сомнений не вызывает, что на страницах сайта пишем: charset=windows-1251. WAP версия пока не намечается, да и прикручивать что-то тоже нет планов, всё намечается писать руками.
Ясно.
Что теперь с настройкой MySQL? Написать default-character-set=cp1251 и всё? Или есть ещё какие-то тонкости, позволяющие повысить совместимость с PHP?
Кроме того, серверная переменная _SERVER["HTTP_ACCEPT_CHARSET"] тоже должна на что-то влиять... То есть, localhost, так же желательно неким образом настроить, чтобы после публикации сайта не возникло неожиданностей.
Может быть есть и ещё что-то влияющее на работу с регулярными выражениями и разными преобразованиями текста, я не знаю пока что. Подскажите! Какие варианты настройки вы пробовали? Что получилось? На чём остановились?

Немного сумбурно получилось.
Ещё раз спрошу главное:
Как различные настройки окружения влияют на работу PHP со строками?
Каковы оптимальные настройки? Почему?

   
 
 автор: Unkind   (06.06.2007 в 14:25)   письмо автору
 
   для: Ralph   (06.06.2007 в 00:49)
 

Везде хожу с Оперы (как,впрочем,и многие) и никогда проблем с кодировкой не было
Так Вы заходите с OperaMini? А Вас просят зайти с родного браузера.

   
 
 автор: Loki   (06.06.2007 в 14:09)   письмо автору
 
   для: Eugene77   (05.06.2007 в 19:05)
 

Перейдя на UTF вы огребете проблем с преобразованием текста и регулярными выражениями. И если первое еще как-то решается при помощи расширения mbstring, то со вторым пока все совсем не шоколадно.
С другой стороны, без всякой конвертации можно прикручивать к сайту xml, а значит и всякие rss, ajax, soap и прочее.

   
 
 автор: Gemorroj   (06.06.2007 в 08:23)   письмо автору
 
   для: Ralph   (06.06.2007 в 00:49)
 

UTF-8 =)

   
 
 автор: Ralph   (06.06.2007 в 00:49)   письмо автору
 
   для: Disable   (06.06.2007 в 00:31)
 

Я меня М65 (ранее-С65) ...Везде хожу с Оперы (как,впрочем,и многие) и никогда проблем с кодировкой не было.А вообще спорить не буду,я высказал всего лишь свое ЛИЧНОЕ мнение...

   
 
 автор: Disable   (06.06.2007 в 00:31)   письмо автору
 
   для: Ralph   (06.06.2007 в 00:29)
 

siemens s75 зайдите на страницу с виндой :)
я тоже с вмл "слез", там конечно есть свои плюсы, но все же......

   

Сообщения:  [1-10]   [11-20] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования