Кроссдоменная авторизация
Суть новомодной тенденции, которая сейчас набирает обороты такова: вы заходите на сайт и авторизуетесь на нем, потом переходите на другой из тойже сети, но на другом домене, и там вы автоматически являетесь авторизованными. Примером такой схемы сейчас успешно служат Яндекс, Мейл.ру и другие.
А вот что касается реализации, то тут есть масса мнений и способов, достаточно спросить гугля по фразе "кроссдоменная авторизация" и почитать длинные дискуссии. Для себя я вижу 2 варианта реализации этой моды: одно простое и красивое, но с ограничениями, другое более сложное и не такое изящное, но более свободное.
О спецификации Cross-Origin Resource Sharing речь пока не идет, поскольку она еще нигде не поддерживается.
Начнем с простого и красивого решения.
6-й день
С началом октября появилась проблема 6-го дня в php (наблюдается на php-4.4.8 win32 и 4.x на linux, на других платформах эксперименты не проводились). Ее можно назвать реинкарнацией проблемы 2000 года.
Суть проблемы заключается в косяке в php-шных функциях работы со временем, результатом которой является неверное исчисление времени для октября 2008. Сентябрь, ноябрь и декабрь (дальше не проверялось) без проблем.
Более подробно видно из примера:
PHP 5 + Oracle Client 11 на RHEL 4
Выстраданное долгими часами на работе практическое пособие по установке
PHP 5 + Oracle Instant Client 11 на RedHat Enterprise Linux 4
Очень удобно что много библиотек для php представлены в виде rpm на болванке, это немного упростило задачу. Итак вашему вниманию инструкция из 12 пунктов:
0. Изначально имеем установленный RHEL4 с предустановленным PHP 4.3.9 и MySQL 4.1
Сразу хочется оговориться насчет путей, они все спецефичны для RHEL 4 и на других системах и версиях могут быть другими.
1. Ставим Oracle Client
В моем случае это 11 версия, тк 10 не пошло. Благо клиент доступен в rpm. В общем ставим
oracle-instantclient-basic-11.1.0.1-1.i386.rpm
oracle-instantclient-devel-11.1.0.1-1.i386.rpm
Эти rpm доступны на официальном сайте оракла, но требуется регистрация для скачивания, но можно поискать на filesearch и может что найдется ![]()
Для меня нашлось на http://eduunix.ccut.edu.cn/index/database/Oracle%20Instant%20Client/ но качалось очень медленно.
Осваиваем мыло в UTF-8
Точнее не осваиваем а уже освоено. Изначальная трабла: если слать мыло в любом чарсете и впихивать в сабжект и from корректно закодированные строки, то почтовик все равно выводит караказяблы. Изучение сырцов писем и чтение гуглев принесло решение проблемы. Да еще и чтоб соответствовать моде теперь мыло расходится в UTF-8.
Вот кодина которая корректно шлет мыло в UTF-8 и читается почтовиками нормально (проверено на mozilla firefox):
$from = "=?UTF-8?B?".base64_encode(iconv('windows-1251', 'UTF-8', $name))."?= <$email>";
$subj = "=?UTF-8?B?".base64_encode(iconv('windows-1251', 'UTF-8', $subj))."?=";
$text = iconv('windows-1251', 'UTF-8', $text);
mail($to, $subj, $text, "From: $from\r\nReply-To: $email\r\nMIME-Version: 1.0\r\nContent-type: text/plain; charset=UTF-8\r\n");
Особенность состоит в том, что для корректной читабельности в почтовиках приходится добавлять указание на кодировку (=?UTF-8?B? ... ?=) и base64_encode -- Encodes data with MIME base64. Теперь мыло расходится в UTF-8 и читается отлично ![]()
- 1
