Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Простая капча
http://forum.kohanaframework.su/viewtopic.php?f=38&t=378
Страница 1 из 1

Автор:  websto [ 13 сен 2012, 22:06 ]
Заголовок сообщения:  Простая капча

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

В файле вида пишем

Код:
<form method="post">
------
<img src="/public/img/noise.php" width="120" height="50">
<input name="pr" type="text">
------
</form>


Файл рисунка noise.php

Код:
<?php
 
$im = imageCreateFromJPEG ('noise.jpg');//noise.jpg фон каптчи рисуем сами или ищем в гугл
$black = imagecolorallocate($im, 64, 64, 64);

// Включаем сглаживание
imageantialias($im, true);

// Число символов
$nChars = 5;

// Случайная строка
$randStr = substr(md5(uniqid()), 0, $nChars);
setcookie("cap", $randStr,'0','/'); //для особо обеспокоеных безопасностью куки можна шифровать
// Координаты
$x = 20;
$y = 30;
$deltaX = 40;

for ($i=0; $i <strlen($randStr); $i++)
{
   $size = rand(18, 30);
   $angle = -30 + rand(0,60);
   imageTTFText($im, $size, $angle, $x, $y, $black, '/fonts/bellb.ttf', //Путь к шрифтам
      $randStr{$i});
   $x += $deltaX;
}

header("Content-type: image/jpeg");
imageJPEG($im, "", 75);
?>


В контролере проверяем
Код:

if ($_SERVER["REQUEST_METHOD"] == "POST")
         {
               if ($_COOKIE['cap'])
        {
                      $rand = $_POST["pr"];

                              if  ($rand == $_COOKIE['cap'])
      {
                      Ok!

               }

          }       

 }

Автор:  Sergey [ 12 янв 2013, 16:07 ]
Заголовок сообщения:  Re: Простая капча

Кстати, проект Kohana Captcha https://github.com/kolanos/kohana-captcha.git активно развивается последнее время

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/