Developer Tales or everything about everything

9Сен/140

Списки Selectize.JS и jQuery Validation

Selectize.JS - очень полезная вещь, когда хочется организовать красивые ниспадающие списки с возможностями автозаполнения, поиска и удаленной загрузки данных. jQuery.Validation - как очевидно из названия, плагин jQuery для проверки форм.

Проблема этих двух библиотек заключается в том, что одна по умолчанию игнорирует скрытые поля при проверке, а другая - намеренно эти поля скрывает. Эдакое противостояние двух сил :)

Чтобы подружить библиотеки, достаточно добавить три строчки кода:

Этот код необходимо разместить непосредственно после загрузки библиотеки jQuery Validation.

Селектор ignore сохраняет настройки по умолчанию с тем исключением, что в список для проверки включаются поля, генерируемые библиотекой Selectize.

Более подробно о селекторе:

  • :hidden:not([class~=selectized]) - игнорируем все скрытые поля, кроме полей с классом .selectized;
  • :hidden > .selectized - восстанавливаем поведение стандартного селектора - поля проверяются только если родительские DOM-элементы не являются скрытыми;
  • .selectize-control .selectize-input input - дополнительный селектор для исключения проверок динамически создаваемых полей библиотекой Selectize.

Просмотров: 1385
22Фев/140

ps_files_cleanup_dir: permission denied

В некоторых случаях, при определенной конфигурации сервера и интерпретатора PHP, в логах работы можно встретить записи, подобные этой:

session_start(): ps_files_cleanup_dir: opendir(/var/lib/php/session) failed: Permission denied (13)

Объясняется эта ошибка достаточно просто: PHP пытается удалить устаревшие данные из директории сессий, но интерпретатору не хватает прав - обычно, отсутствуют права на чтение (в моем случае директория имела флаги 0773).

Эта проблема встречалась в ОС Debian Linux, но знающие люди говорят, что такое возможно и в Ubuntu.

Способов решения этой проблемы несколько (упорядочено от наилучшего решения до наихудшего):

  1. Изменить владельца директории на пользователя, под которым запускается PHP. Сделать это можно с помощью команды chown. Естественно, Вы должны точно знать, что директория, в которой хранятя сессии, используется только для этой цели;
  2. Установить в файле конфигурации PHP session.gc_probability = 0. Эта конфигурация полностью отключит функцию удаления старых сессий. Т.к. в ОС Linux временные директории чистятся с помощью планировщика задач cron, то отключив GC, мы ничего не потеряем;
  3. Изменить директорию хранения сессий PHP на директорию, к которой можно обеспечить безопасный полный доступ для PHP. Для этого нужно изменить значение конфигурации session.save_path в php.ini;
  4. Назначить права 0777 на директорию с сессиями с помощью команды chmod. Этого лучше не делать, т.к. общий доступ к сессиям - потенциальная брешь в безопасности.

Просмотров: 1291
30Май/120

Добавление сайта в поисковые системы

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

Просмотров: 3889