За месяц Апрель, 2009

DNS зоны (ресурсные записи DNS)

DNS - зоны - немного теории примеры:

Вся информация о DNS хранится порциями (ресурсная запись или Resource Record). Каждая ресурсная запись содержит:

имя (NAME) - доменное имя, к которому привязана или которому “принадлежит” данная ресурсная запись,
TTL (Time To Live) - допустимое время хранения данной ресусной записи в кэше неответственного DNS-сервера,
тип (TYPE) ресурсной записи - определяет формат и назначение данной ресурсной записи,
класс (CLASS) ресурсной записи; теоретически считается, что DNS может использоваться не только с TCP/IP, но и с другими типами сетей, код в поле класс определяет тип сети,
длина поля данных (RDLEN),
поле данных (RDATA), формат и содержание которого зависит от типа записи.

Часто используемые DNS-зоны:

  • @ — символ «@» означает, что действие записи будет распространяться на указанную зону.
  • subdom — набор букв и цифр, определяющий зону следующего уровня (поддомен), на которую распространяется действие. В нашем примере — действие записи будет распространяться на зону abc.domain.tld.
  • * — символ «*» означает, что действие записи будет распространяться на все поддомены

Тип DNS-зоны

  • A — используется для указания соответствия имени хоста IP-адресу.
  • MX — используется для указания почтового сервера для домена.
  • CNAME — используется для перенаправления имени хоста на другое имя.
  • SRV — используется для указания сервера, предоставляющего услуги определенной службы. В грубом приближении это аналог MX-записи, которая указывает, куда должна доставляться электронная почта, которая адресована определенному домену. Штатно поддерживается такими протоколами как XMPP(Jabber), SIP, LDAP. За счет использования этого вида записи можно разместить Jabber-сервер на отдельной машине, а не на той же, куда указывает A-запись DNS.
  • TXT — используется для указания дополнительной текстовой информации, которую хочет сообщить владелец домена.

Значение:

  • Для A-записи следует указывать IP-адрес.
  • Для MX-записи указывается имя почтового сервера. С точкой на конце! (для полного имени)
  • Для CNAME-записи указывается имя хоста, на которое устанавливаем перенаправление. Точка на конце обязательна!
  • Для SRV-записи указывается строка вида «приоритет вес порт значение», где приоритет, вес и порт должны состоять только из цифр, а значение — полное имя хоста с точкой на конце.
  • Для TXT-записи указывается произвольная текстовая строка. Ограничение — запись может состоять только из букв латинского алфавита, цифр, пробелов и символов:
    . , ; : - = " / ~ ?

Примеры DNS записей:
@      IN      A      93.158.134.8
@      IN      MX 10      ya.ru.
WWW      IN      CNAME      ya.ru.
*      IN      CNAME      ya.ru.

Более подробную информацию смотреть на wiki

Опубликовано Апрель 28, 2009 | автор: levik  |  Нет комментариев »

Управляем кэшированием файлов

Кэширование

Кэширование - (в общем случае и упрощенно) временное сохранение информации для быстрого повторного доступа.

С точки зрения пользователя интернет, кэширование - это сохранение временных файлов на своем компьютере. Разные браузеры (internet explorer, mozilla firefox, google chrome, opera..) используют различные места для хранения временных файлов (Temporary Internet Files). Пользователь может и не подозревать о том, что часть файлов из интернета сохранена у него на компьютере.

Для администраторов (с увеличением оборудования увеличиваются и места для возможного сохранения информации) термин кэширование распространяется и на промежуточные устройства между веб-сервером и конечным пользователем (всевозможные Nat, proxy-серверы, маршрутизаторы.. и, возможно, другие сетевые устройства) Читать целиком »

Опубликовано Апрель 21, 2009 | автор: levik  |  Комментарии (2) »

Как создать два FCKEditor на одной странице

Чтобы подключить на одной странице два (или более) редактора FCKEditor можно “дублированием кода” создать дополнительный объект, задать требуемый параметр name формы (при создании) и вывести код в нужное место.

$fckeditor= new FCKeditor('description');
//устанавливаем  все настройки для первого fckeditor
$fckeditor->BasePath = '/fckeditor/';
$fckeditor->Height = '400px';
$fckeditor->Value = $value['description'];
$fckeditor->Create();  //выводим HTML-код первого редактора fckeditor
unset ($fckeditor); //не обязательно

$fckeditor= new FCKeditor(’full_description’); // второй редактор
//устанавливаем  все настройки для первого fckeditor
$fckeditor->BasePath = ‘/fckeditor/’;
$fckeditor->Height = ‘400px’;
$fckeditor->Value = $value[’full_description’];
$fckeditor->Create();  //выводим HTML-код первого редактора fckeditor
unset ($fckeditor); //не обязательно

Способ, возможно, не самый рациональный, но рабочий. В общем-то ничего сложного, но может оказаться полезным для установки второго (третьего..) редактора “на скорую руку”

Опубликовано Апрель 13, 2009 | автор: levik  |  Комментарии (2) »

CURL в PHP (libcurl)

CURL (Client URL Library), libcurl - библиотека функций для работы с серверами по различным протоколам (http, ftp, https … и ряд других - более подробно смотрите описание последней версии).

В php включена  (если точнее, имеется возможность включить - зависит от конфигурации сервера) поддержка curl. Проверить, поддерживается ли сервером функции curl проще всего, произведя вызов любой из функций, например
<?php
$ch = curl_init("http://www.example.com/");
?>

Если исполнение этого кода не приведет к ошибке - все в порядке, можем использовать CURL в “корыстных целях”. Если же “функция не существует”… Но, впрочем, это уже совсем другая история. А пока вернемся к нашим.. CURL ам.

В PHP самый простой вариант использования библиотеки обычно  сводится к следующим шагам:

Инициализация - curl_init($url);
Установка параметров - curl_setopt($ch, $opt, $value);
Выполнение запроса - curl_exec($ch);
// Получение и обработка информации - обычно хватает результата, возвращенного предыдущей функцией, однако, существует несколько дополнительных функций, например curl_getinfo($ch);
Закрытие - curl_close($ch);

Особенности и подводные камни:
CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR при работе в  WINDOWS будут правильно работать только при указании полного пути к файлу.

curl_setopt($ch,CURLOPT_COOKIEFILE,dirname(__FILE__).’/tmpfile.txt’;)

php class Snoopy позволяет использовать php почти как браузер - скачиваем, загружаем…

Опубликовано Апрель 7, 2009 | автор: levik  |  Нет комментариев »

в IE 6 появляется дополнительная пустота

При просмотре верстки в IE 6 у некоторых элементов могут появляться дополнительные “пустоты”, которые выступают за пределы элемента. Просто белая “торчащая” полоска. :) Иногда к ним можно относиться не слишком критично - небольшое увеличение однотонного отступа в некоторых случаях может быть допустимо. Однако что делать, если из-за этого отступа сбивается фон, уходят “на нет” все усилия по созданию скругленных углов?

Для начала попробовать вычислить “торчащий” элемент, прописывая в css для ie ( if lte IE 6) border предполагаемого элемента, или заполняя этот элемент парой-тройкой цифр-букв. Иногда от непонятных пустот в IE помогает избавиться дописанный &nbsp; в “глючный” элемент. Или, как вариант, прописать для выпирающего элемента css-свойство zoom:1; которое является специфичным для Internet Explorer и влияет на так называемый hasLayout, отсутствие или наличие которого определяет ряд специфичных iE-багов: удвоение отступа плавающего элемента , 3px float bug и другие..

Судя по всему, это объясняется следующим:

MS-свойство hasLayout влияет на расширяемость и позиционирование фона (background). Например, по CSS-спецификации background-position: 0 0 должно соответствовать «углу отступа» (padding edge) элемента. В IE/Win это соответствует «углу границы» (border edge) при hasLayout = false и «углу отступа» при hasLayout = true:

http://csspractic.wordpress.com/2008/09/09/haslayout/

Опубликовано Апрель 3, 2009 | автор: levik  |  Нет комментариев »