Проект KCAPTCHA — это готовое решение, написанное на языке PHP, которое вы можете бесплатно скачать и установить на свой сайт для защиты от спама и флуда.
Проект KCAPTCHA ставит перед собой цель предложить программисту решение с одной стороны весьма защищенное, с другой — максимально малотребовательное к ресурсам и конфигурации хостинга.
Принцип действия: скрипт заводит сессию и записывает в нее под именем $_SESSION['captcha_keystring']
случайным образом сгенерированную строку, после чего выдает изображение, содержащее эту самую строку в зашумленном виде. При проверке пользовательского ввода вам остается только прочитать из сессии кодовую строку и сравнить с тем, что ввел пользователь (подробнее об аспектах безопасности при проверке пользовательского ввода).
Системные требования: PHP версии 4.0.6 и выше с поддержкой GD версии 2. Не требуются ни библиотеки для работы со шрифтами (Libttf и др.), ни ImageMagick.
В комплект входит набор растровых шрифтов, так что скрипт, скорее всего, будет сразу готов к работе, не требуя установки дополнительных компонент.
Можно настраивать цвета и набор символов, применяемые при создании изображения.
Пример использования может быть такой:
В самом верху старницы, до html
кода:
<?php
include('kcaptcha.php');
// Подключение капчи
session_start();
// включение сессии
?>
Между
<body></body>
:<form action="" method="post">
<p>Enter text shown below:</p>
<p><img src="./?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<!--// на основе сессии генерируется и показывается картинка //-->
<p><input type="text" name="keystring"></p>
<!--// вводятся цифры с картинки //-->
<p><input type="submit" value="Check"></p>
<!--// отсылаются //-->
</form>
<?php if(count($_POST)>0){ if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] === $_POST['keystring']) // сравниваются на строгое совпадение введенные элементы и сгенерированные капчей { echo "Correct"; // совпало – "Правильно" }else{ echo "Wrong";// не совпало – "Неправильно" } } unset($_SESSION['captcha_keystring']);//удаление запомненной в сессии строки элементов ?>
Комментарии:
Нет комментариев к этой статье.