Все записи автора liman

Структура поля Identifier в некоторых таблицах RS-Bank

В некоторых таблицах RS-Bank используется поле Identifier.

В данном посте описана структура и пример макроса для его формирования.

Читать далее Структура поля Identifier в некоторых таблицах RS-Bank

.htaccess — Запрещаем доступ к несуществующим компонентам Joomla!

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

http://yourdomain.com?option=com_vitabook

Если подобный компонент у вас установлен, то деваться некуда и вы сами должны позаботиться о его безопасности. Но если таких компонентов нет, то в таблицу перенаправлений регистрируется множество совершенно ненужных запросов.

Избавиться от регистрации таких записей можно добавлением нескольких строк в .htaccess

Читать далее .htaccess — Запрещаем доступ к несуществующим компонентам Joomla!

.htaccess — Несколько доменов в одном

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

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

Читать далее .htaccess — Несколько доменов в одном

Реализация наследования паттерна Singleton в PHP

Паттерн Singleton (Одиночка) уже многократно обсуждался, тем не менее я не нашел решения позволяющего реализовать наследование от Singleton-а не нарушающего основной идеи Singleton-а — скрытие конструктора класса.

Ниже приведен пример моей реализации такого механизма не нарушающего сущность паттерна с использованием трэйта.

Читать далее Реализация наследования паттерна Singleton в PHP

В чем разница между isset и array_key_exists

Есть ли разница между isset() и array_key_exists()?

Да есть, и её непонимание может подложить грабли.

Разница состоит в том, что если элемент массива имеет значение null, то isset() для этого элемента вернет false, а array_key_exists()true.

В принципе, это вполне логично, так как само название функции array_key_exists() говорит о том, что функция проверяет наличие ключа в массиве, а какое значение сопоставлено этому ключу, ее мало волнует.

Вроде бы и мелочь, но забывать об этом не стоит.

Читать далее В чем разница между isset и array_key_exists

Разбираем .htaccess для Joomla!

Итак, возьмем .htaccess от Joomla! (я взял от версии 3.4.1) и посмотрим, что в нем интересного и как это все работает.

В первой незакомментированной строке видим команду IndexIgnore

IndexIgnore *

Если в конфигурации вашего сервера или в .htaccess файле включена опция

Options +Indexes

, то при обращении к папке, в которой нет файлов index.php или index.html, на экране браузера будет выведен листинг этой папки со всеми файлами и вложенными папками.

Читать далее Разбираем .htaccess для Joomla!

Как указать Last-Modified для страницы?

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

Читать далее Как указать Last-Modified для страницы?