.InFo
Вечно пьян, вечно в бреду

Каптча (CAPTCH) для CakePHP

Март 28th, 2008 by mAd

Уже есть несколько компонентов для CakePHP которые реализуют каптчу, и я некоторое время использовал их, но чемто они мне не нравились (или я не нашёл ту которая бы мне понравилась).

Однако мне понравилась каптча, которую предлагет CAPTCHA.ru.

Взяв их код, я сделал компоненту. Которой и хочу поделится.

Скачать код можно здесь: captcha component

Как использовать

1. Распаковываем архив и встраиваем в свой проект.

2. Добавляем в список компонент, которые будет использовать контроллер

$components=array("Captcha");

3. В нужном action пишем строчку

$this->Captcha->generate();

это сгенерирует новую строку и запишет её в сессию(ничего не возвращает)

4. Cоздаём дополнительный action (для вывода каптчи)

function captchaImg(){
$this->autoRender=false;
$this->Captcha->show();
}

5. Чтобы отобразить картинку во view:

<img src="<?php echo $html->url("/controller/captchaImg")?>" alt="">

controller - это ваш контроллер, где вы подключили компоненту, сгенерировали ключь, и создали функуию отображения (можно воспользоватся route)

6. для проверки каптчи:

if($this->Captcha->check($this->data["Msg"]["captcha"])){
//Каптча верна
}

$this->data["Msg"]["captcha"] - это строка, которую вы хотите сверить с сгенерированным ключём

В принципе этого достаточно.

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

Если вы думаете что она очень проста для понимания роботами… я вас умоляю, она не на столько проста чтобы так слёту её мог понять спам бот, а если за ваш сайт возьмутся, то любая каптча будет безсильна.

ИМХО: каптча не универсальный способ защиты от спама с её помощью можно отсеит какойто процент.

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

Posted in PHP

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

rss RSS