Я уже долгое время использую капчу от W3BOX, спам она не пропускает, выглядит красиво.
Установка
- На сайте w3box скачиваем капчу и шрифт
- Создаем в корне 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>

