Drupal CAPTCHA и кеш.

13 Март 2011

Для защиты от спам-ботов многие используют CAPTCHA. С этой самой CAPTCHA встречались, наверно, уже все пользователи интернета. Конечно, CAPTCHA - это зло, но это вынужденное зло. Хоть какая-то защита от спамеров. Вот и в системе управления сайтом Drupal я установил модуль CAPTCHA  6.x-2.4 и сразу же подключил и Image CAPTCHA, так как каптча на картинках выглядит симпатичней. Но это на мой взгляд.

Подключение CAPTCHA к формам в друпал занимает считанные минуты, да и то первый раз. После прочтения документации (даже не на своем родном, а на английском языке), подключить к форме каптчу не составит труда у любого человека, как-то связанного с программированием на начальном уровне. Что я и сделал у своих форм. Но у меня возникли проблемы с функционированием каптчи. Проблемы были явно из-за ошибок кеширования. Понятное дело, что для каждой страницы с формой нужна своя новая картинка. Поэтому CAPTCHA отключает кеширование на страницах с формами, где она используется. Об этом она честно предупреждает во вкладке "производительность".
Внимание: модуль CAPTCHA будет отключать кэширование страниц, которые содержат CAPTCHA.

Но, несмотря на это, страница с каптчей все равно кешировалась. Все дело в том, что формы я выводил не в нодах, а в в блоках. Что такое нода знает каждый, кто как-то связывался с системой друпал. Хотя понятие нода очень обширное. Но в данном контексте его можно упрощенно принять за основное содержимое страницы.  То есть содержимое в ноде уникальное, а вот в блоке было одинаковым для всех страниц. Побороть кеширование в блоках я сумел, установив модуль Block Cache Alter, который позволил устанавливать кеширование для блоков индивидуально или вовсе отключить кеширование для того или иного блока. В Drupal 6.20 управлять кешированием блока индувидуально без стороннего модуля нет возможности - или я плохо искал.

Андрей Лебедев

,

, , , , , ,

Комментарий

Нет комментарий.

Комментировать: