[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Curl - Капча вставляет палки
igolka97
Всех приветствую. Нужно сделать авторизацию через сторонний сайт, API у них нету, пришлось делать свой велосипед.

<?php defined('key') OR exit('No direct script access allowed');

class Welcome extends Controller {

public function index()
{
if(isset($_POST['auth']))
{
$ch = curl_init();
$url = 'http://exemle.com/login';
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'dologin' => 'Войти',
'g-recaptcha-response' => '',
'login' => 'test',
'passw' => 'test',
));

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
$result = $this->isAuth(curl_exec($ch)) ? TRUE : FALSE;
curl_close($ch);

if($result)
echo 'Успех';
else
echo 'Печаль';
}

$this->data['title'] = 'Главная';
$this->load->view('welcome', $this->data);
}

private function isAuth($data)
{
return preg_match('#<div[^>]+class="auth-logout"#Usi',$data);
}
}


Авторизацию прохожу успешно, но стоить первый раз ошибиться пользователю, то выскакивает капча. Прохожу капчу у них на сайте, то что получаю ответ json, вставляю в массив с курлом все успешно и тут подумал я, а что если поставить капчу себе, но не тут то было. Ответы от капчи они запоминают и хранят судя по всему в базе, так как отключения js и удаление кук и сессий не к чему не привела, подскажите что можно придумать в данной ситуации?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.