Капча из трех картинок

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
Dad
Сообщения: 40
Зарегистрирован: 13 дек 2009, 17:22

Капча из трех картинок

Сообщение Dad » 19 ноя 2010, 02:54

Попытался регистрилку почты на мейле написать. Капча состоит из 3х отдельных картинок. И что с ними делать?

ozware
Сообщения: 19
Зарегистрирован: 05 окт 2010, 16:52

Re: Капча из трех картинок

Сообщение ozware » 19 ноя 2010, 10:38

3 раза подряд вводить картинку в php-коде, т.е. код $app->dlg_captcha_from_image_number($number); повторить 3 раза

затем submit, проверка на еррор, в случае ошибки опять вводим 3 каптчи

shmel
Сообщения: 34
Зарегистрирован: 19 мар 2009, 11:34

Re: Капча из трех картинок

Сообщение shmel » 19 ноя 2010, 11:30

сделай скрин заданного участка

Код: Выделить всё

 $webpage->print_screen(парамтры);
получишь одну картинку

Аватара пользователя
GERAsimov
Сообщения: 47
Зарегистрирован: 09 апр 2009, 15:38

Re: Капча из трех картинок

Сообщение GERAsimov » 22 ноя 2010, 20:48

Можно склеить в 1 файл с помощью php и распознать как 1 картинку!

используем

Код: Выделить всё

splitcap ($cap_file1, $cap_file2, $cap_file);
функция

Код: Выделить всё

////////////// function splitcap  //////////////////////
function splitcap ($put_k_kartinke1, $put_k_kartinke2, $put_k_kartinke_rez) {
  $pic1 = imagecreatefromjpeg($put_k_kartinke1);
  $pic2 = imagecreatefromjpeg($put_k_kartinke2);

  list($width1, $height1, $type1, $attr1) = getimagesize($put_k_kartinke1);
  list($width2, $height2, $type2, $attr2) = getimagesize($put_k_kartinke2);

  $width3 = $width1 + $width2;

  if ($height1 >= $height2) {
    $height3 = $height1;
    $dy1=0;
    $dy2 = round(($height1-$height2)/2);
  }
  else {
    $height3 = $height2;
    $dy1 = round(($height2-$height1)/2);
    $dy2 = 0;
  }

  $rez = imagecreatetruecolor($width3, $height3);
  $white = imagecolorallocate($rez, 255, 255, 255);
  imagefill($rez, 0, 0, $white);

  imagecopy($rez, $pic1, 0, $dy1, 0, 0, $width1, $height1);
  imagecopy($rez, $pic2, $width1, $dy2, 0, 0, $width2, $height2);


  imagejpeg($rez, $put_k_kartinke_rez);

  imagedestroy($rez);
  imagedestroy($pic1);
  imagedestroy($pic2);
}
з.ы. требуется поддержка расширения gd в php
з.ы.з.ы. включается в php.ini

Код: Выделить всё

extension=php_gd2.dll

Ответить