![]() |
С антикапчой... разъясните
Вот такое дело. У меня есть сайт. На нем нужно вводить капчу раз в десять минут. Можно ли сделать чтобы она автоматом шла в антикапчи и сама вставлялась на сайт?
И как сделать чтобы я был на сайте онлайн всегда, даже если не в сети? P.S. Я неопытный =) |
ВКонтакте?
|
Цитата:
|
Тогда кинь в личку - подскажу,что делать.
|
<?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://www.anti-captcha.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://anti-captcha.com/res.php?key='.$apikey.'&action=get&id='.$captcha_i d); 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; } } ?> |
На том сайте,что ты дал,это сделать реально.Флеша, вроде бы, нет.
Делай скрипт авторизации и ставь на крон.А вот каптчу я там не могу найти.Не подскажешь где она вылезает? |
| Время: 12:38 |