Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: CURL отправка формы с каптчей
 
 автор: sasha12342   (26.04.2016 в 22:52)   письмо автору
 
 

Пытаюсь отправить данные в форму(с каптчей) на стороннем сервере и получить ответ. Алгоритм следующий:
По умолчанию(когда открываю файл с парсером на локальном сервере) срабатывает код:
$useragent = $_SERVER['HTTP_USER_AGENT'];

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_URL, 'http://services.fms.gov.ru/info-service.htm?sid=2000');

curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/my_cookies.txt');

curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/my_cookies.txt');

$answer = curl_exec($ch);

$link_img = "http://services.fms.gov.ru/services/captcha.jpg";
загружаю страницу с куками и каптчей, ниже находится форма которую я заполняю и отправляю в ответ(форма с именами как на стороннем сайте):
<form action="#" method="post">
<input type="hidden" name="sid" value="2000"/>
<input type="hidden" name="form_name" value="form"/>
<input type="text" name="DOC_SERIE" value='Серия паспорта*' />
<input type="text" name="DOC_NUMBER" value='Номер паспорта*' />

<img style="border:1px solid #C6B8C5; margin:-10px 5px -13px 0px;" src = "<?php echo $link_img?>" width="145" height="37" style='float:left;' />
<input type="text" name="captcha-input" value='Введите текст с картинки*' /> 

<input type="submit" name="submit" value="ОТПРАВИТЬ ЗАПРОС"/> 
</form>
По нажатию на кнопку срабатывает код:
$useragent = $_SERVER['HTTP_USER_AGENT'];

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, true);  

curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 

curl_setopt($ch, CURLOPT_REFERER, 'http://services.fms.gov.ru/info-service.htm?sid=2000');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_URL, 'http://services.fms.gov.ru/info-service.htm');

$post = array('sid'=>$_POST['sid'],'form_name'=>$_POST['form_name'],'DOC_SERIE'=>$_POST['DOC_SERIE'],'DOC_NUMBER'=>$_POST['DOC_NUMBER'],'captcha-input'=>$_POST['captcha-input'],'submit'=>$_POST['submit']);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));

curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/my_cookies.txt');

curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/my_cookies.txt');

$answer = curl_exec($ch);
Но в ответ ничего не происходит, вернее загружается страница: http://services.fms.gov.ru/info-service.htm?sid=2000 хотя переход идет на: http://services.fms.gov.ru/info-service.htm а оттуда редирект(при успешной обработки данных) на страницу: http://services.fms.gov.ru/info-service-result.htm?sid=2000

Где моя ошибка? Или я вообще все делаю не так?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования