вторник, 21 декабря 2010 г.

Подключаем w3captcha к php-фреймворку Codeigniter

Аккуратно встраиваем капчу w3captcha в php-фреймворк Codeigniter

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

Установка
  1. На сайте w3box скачиваем капчу и шрифт
  2. Создаем в корне codeigniter папку captcha, копируем туда скачанные файлы

Далее покажу как использовать капчу на примере регистрации

Контроллер:

<?php

class Auth extends Controller {

function Auth() {

parent::Controller();

$this->load->library('form_validation');

}

function registration() {

// В контроллере где требуется проверка капчи подключаем сессию

session_start();

$val = $this->form_validation;

//Для того чтобы проверить корректность капчи и правильность кода используем //form_validation

$val->set_rules('captcha', 'капча', 'trim|required|xss_clean|numeric|exact_length[5]|callback_captcha_check');

//Ваш код

}

/* Проверка captcha */

function captcha_check($code) {

$result = FALSE;

$this->form_validation->set_message('captcha_check', 'Неправильно введен код с картинки');

if (isset($_SESSION["captcha"]) && $_SESSION["captcha"] === $code) {

$result = TRUE;

}

// обязательно необходимо удалять переменную $_SESSION["captcha"]

unset($_SESSION["captcha"]);

return $result;

}

}

Представление:

<form action="/check.php" method="post">

//Достаточно указать путь к php-файлу капчи

<img src="captcha/captcha.php" alt="Картинка" /><br />

Текст на картинке: <input type="text" name="captcha" /><br />

<input type="submit" name="submit" value="Проверить" />

</form>

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

Отправить комментарий