Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2010, 17:46   #1
admin_grom
Новичок
Джуниор
 
Регистрация: 05.12.2010
Сообщений: 2
По умолчанию Привязка анти капчи к Link Farm Evolution

Привет ребята! нужна помощь, суть дела в кратце
на Link Farm Evolution приклеплен серверный антикапч decaptcher.com
например на captchabot.com дешевле 4 раза и есть 10 капч бесплатных хотелось бы ее прикрепить вместо родного decaptcher.com и по тестить.

Если есть толковые ребята помогите!
Вот здесь captchaCracker.inc.php как я понял файл отвечающий за капчу в Link Farm Evolution обращается в сервис антикапчи decaptcher.com
код такой

<?php
class Decaptcher
{
private static $_UserName = 'Your Username';
private static $_Password = 'Your Password';

public static function Solve($fileContents)
{
$tempFile = self::_SaveTempFile($fileContents);

$postData = array();
$postData['function'] = 'picture2';
$postData['pict'] = "@$tempFile";
$postData['username'] = self::$_UserName;
$postData['password'] = self::$_Password;
$postData['pict_to'] = '0';
$postData['pict_type'] = '728';
$postData['submit'] = 'send';


$cUrlHandle = curl_init();
curl_setopt($cUrlHandle, CURLOPT_URL, 'http://poster.decaptcher.com/');
curl_setopt($cUrlHandle, CURLOPT_VERBOSE, true);
curl_setopt($cUrlHandle, CURLOPT_POST, true);
curl_setopt($cUrlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cUrlHandle, CURLOPT_POSTFIELDS, $postData);

$response = curl_exec($cUrlHandle);
curl_close($cUrlHandle);

unlink($tempFile);

$responseArray = explode('|', $response);

return $responseArray[5];
}

private static function _SaveTempFile($fileContents)
{
$tmpFileName = 'file_' . rand(0, 9999) . '.png';

$handle = fopen($tmpFileName, 'w');
fwrite($handle, $fileContents);
fclose($handle);

return $tmpFileName;
}
}

function captchaCracker($token, $fileContents, $proxy = '', $ext = 'jpg', $phrase = 0, $regsense = 0, $numeric = 0, $min_len = 0, $max_len = 0) {
// We don't care for anything else than fileContents
$result = Decaptcher::Solve($fileContents);
if (empty($result)) {
echo template('red', 'Dem Good Ole Indian Decaptcha-Guys were not able to solve the Captcha...');
return false;
}

echo template('green', 'Dem Good Ole Indian Decaptcher-Guys solved Captcha: ' . $result);
flush();

return $result;
}

function template($color, $text)
{
return '<p class="' . $color . '">' . $text . '</p>';
}
?>
admin_grom вне форума Ответить с цитированием
Старый 05.12.2010, 17:47   #2
admin_grom
Новичок
Джуниор
 
Регистрация: 05.12.2010
Сообщений: 2
По умолчанию

Теперь хотелось бы его изменить на пример на сервис captchabot.com , скачал их скрипт curl.php
код вот такой

<?php
/*
$filename - полный путь к файлу
$apikey - ключ для работы
$rtimeout - задержка между опросами статуса капчи
$mtimeout - время ожидания ввода капчи

включить/выключить verbose mode (комментирование происходящего):
$is_verbose - false(выключить), true(включить)

дополнительно (дефолтные параметры править не нужно без необходимости):
$is_phrase - 0 либо 1 - флаг "в капче 2 и более слов"
$is_regsense - 0 либо 1 - флаг "регистр букв в капче имеет значение"
$is_numeric - 0 либо 1 - флаг "капча состоит только из цифр"
$min_len - 0 (без ограничений), любая другая цифра указывает минимальную длину текста капчи
$max_len - 0 (без ограничений), любая другая цифра указывает максимальную длину текста капчи

пример:
$text=recognize("/path/to/file/captcha.jpg","ваш_ключ_из_админки", true);

$text=recognize("/path/to/file/captcha.jpg","ваш_ключ_из_админки", false); //отключено комментирование

$text=recognize("/path/to/file/captcha.jpg","ваш_ключ_из_админки", false,1,0,0,5); //отключено комментирование, капча состоит из двух слов, общая минимальная длина равна 5 символам

*/



function recognize($filename, $apikey, $is_verbose = true, $rtimeout = 5, $mtimeout = 120, $is_phrase = 0, $is_regsense = 0, $is_numeric = 0, $min_len = 0, $max_len = 0)
{
if (!file_exists($filename))
{
if ($is_verbose) echo "file $filename not found\n";
return false;
}
$postdata = array(
'method' => 'post',
'key' => $apikey,
'file' => '@'.$filename, //полный путь к файлу
'phrase' => $is_phrase,
'regsense' => $is_regsense,
'numeric' => $is_numeric,
'min_len' => $min_len,
'max_len' => $max_len,

);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://captchabot.com/in.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
$result = curl_exec($ch);
if (curl_errno($ch))
{
if ($is_verbose) echo "CURL returned error: ".curl_error($ch)."\n";
return false;
}
curl_close($ch);
if (strpos($result, "ERROR")!==false)
{
if ($is_verbose) echo "server returned error: $result\n";
return false;
}
else
{
$ex = explode("|", $result);
$captcha_id = $ex[1];
if ($is_verbose) echo "captcha sent, got captcha ID $captcha_id\n";
$waittime = 0;
if ($is_verbose) echo "waiting for $rtimeout seconds\n";
sleep($rtimeout);
while(true)
{
$result = file_get_contents('http://captchabot.com/res.php?key='.$apikey.'&action=get& id='.$captcha_id);
if (strpos($result, 'ERROR')!==false)
{
if ($is_verbose) echo "server returned error: $result\n";
return false;
}
if ($result=="CAPCHA_NOT_READY")
{
if ($is_verbose) echo "captcha is not ready yet\n";
$waittime += $rtimeout;
if ($waittime>$mtimeout)
{
if ($is_verbose) echo "timelimit ($mtimeout) hit\n";
break;
}
if ($is_verbose) echo "waiting for $rtimeout seconds\n";
sleep($rtimeout);
}
else
{
$ex = explode('|', $result);
if (trim($ex[0])=='OK') return trim($ex[1]);
}
}

return false;
}
}
?>

как грамотно вставить мозгов не хватает, для спецов которые могут читать свободно и я думаю это не так уж и сложно .
Помогите плз.
admin_grom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анти-плагиат (Delphi, C++) udaffo4ka Помощь студентам 8 10.12.2015 02:18
Анти Чит Fndrey Gamedev - cоздание игр: Unity, OpenGL, DirectX 19 08.04.2012 19:26
Нужен анти strcat Hichigo Общие вопросы C/C++ 1 04.08.2010 15:08
[Анти]-судоку С.М.С Софт 9 25.04.2009 13:05