|
| |
|
|
| |
для: 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, выбросить жалко - купил компьютер и стал сочинять сайт :)
Зачем мне все ваши тропинки? Мне надо одну - самую короткую. | |
| |
|
|
| |
|
|
| |
для: 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 - и о чудо! Часть программы сама собой стала выдавать несколько иные результаты. Видимо я что-то иначе указал в настойках не узнать теперь что именно.
Ну почему же.
Если Вы видите, что они отличаются, то можете попытаться выяснить - почему.
>Теперь я понимаю, что к вершине горы ведут несколько тропинок. Каждая со своей полосой препятствий. Вершина - это сайт, который я делаю. А тропинки - это разные кодировки. Хотя может быть и не только кодировки... Вот мне и хотелось бы выбрать ту тропинку, которая подошла бы под мою "манеру" передвижения, а не просто ткнуться куда-то случайным образом без карты и компаса. Уф!
> Ну я честно старался всё объяснить, если и теперь не получилось, то - сдаюсь!
Опять же, на мой взгляд, по какой бы тропе не иди - крайне важно твердо стоять на ногах.
То есть представлять, как именно реагирует компьютер на каждую твою команду.
Тогда все тропинки если не сольются в одну, то как минимум станут обозримы. | |
| |
|
|
| |
|
|
| |
для: 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 - и о чудо! Часть программы сама собой стала выдавать несколько иные результаты. Видимо я что-то иначе указал в настойках не узнать теперь что именно.
Теперь я понимаю, что к вершине горы ведут несколько тропинок. Каждая со своей полосой препятствий. Вершина - это сайт, который я делаю. А тропинки - это разные кодировки. Хотя может быть и не только кодировки... Вот мне и хотелось бы выбрать ту тропинку, которая подошла бы под мою "манеру" передвижения, а не просто ткнуться куда-то случайным образом без карты и компаса. Уф!
Ну я честно старался всё объяснить, если и теперь не получилось, то - сдаюсь! | |
| |
|
|
| |
|
|
| |
для: 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 - это не автомобиль. Не карбюраторный двигатель. Хотя даже последний настраивают под манеру езды конкретного водителя. | |
| |
|
|
| |
|
|
| |
для: Loki
(06.06.2007 в 14:09)
| | | Спасибо всем, что поделились опытом!
Но давайте всё-таки ещё чуть точнее.
Как я понял, сомнений не вызывает, что на страницах сайта пишем: charset=windows-1251. WAP версия пока не намечается, да и прикручивать что-то тоже нет планов, всё намечается писать руками.
Ясно.
Что теперь с настройкой MySQL? Написать default-character-set=cp1251 и всё? Или есть ещё какие-то тонкости, позволяющие повысить совместимость с PHP?
Кроме того, серверная переменная _SERVER["HTTP_ACCEPT_CHARSET"] тоже должна на что-то влиять... То есть, localhost, так же желательно неким образом настроить, чтобы после публикации сайта не возникло неожиданностей.
Может быть есть и ещё что-то влияющее на работу с регулярными выражениями и разными преобразованиями текста, я не знаю пока что. Подскажите! Какие варианты настройки вы пробовали? Что получилось? На чём остановились?
Немного сумбурно получилось.
Ещё раз спрошу главное:
Как различные настройки окружения влияют на работу PHP со строками?
Каковы оптимальные настройки? Почему? | |
| |
|
|
| |
|
|
| |
для: Ralph
(06.06.2007 в 00:49)
| | | Везде хожу с Оперы (как,впрочем,и многие) и никогда проблем с кодировкой не было
Так Вы заходите с OperaMini? А Вас просят зайти с родного браузера. | |
| |
|
|
| |
|
|
| |
для: Eugene77
(05.06.2007 в 19:05)
| | | Перейдя на UTF вы огребете проблем с преобразованием текста и регулярными выражениями. И если первое еще как-то решается при помощи расширения mbstring, то со вторым пока все совсем не шоколадно.
С другой стороны, без всякой конвертации можно прикручивать к сайту xml, а значит и всякие rss, ajax, soap и прочее. | |
| |
|
|
| |
|
|
| |
для: Ralph
(06.06.2007 в 00:49)
| | | UTF-8 =) | |
| |
|
|
| |
|
|
| |
для: Disable
(06.06.2007 в 00:31)
| | | Я меня М65 (ранее-С65) ...Везде хожу с Оперы (как,впрочем,и многие) и никогда проблем с кодировкой не было.А вообще спорить не буду,я высказал всего лишь свое ЛИЧНОЕ мнение... | |
| |
|
|
| |
|
|
| |
для: Ralph
(06.06.2007 в 00:29)
| | | siemens s75 зайдите на страницу с виндой :)
я тоже с вмл "слез", там конечно есть свои плюсы, но все же...... | |
| |
|
| |
|