@vikagalat

Curl. Где ошибка в коде?

Все работает, если при передаче запросов в последней форме прописываю поле SessionKey вручную. если ставлю переменную sk[1], отвечает, что не введены значения для поиска, т.е. не читает все то, что после переменной.

$url = 'http://www1.fips.ru/wps/wcm/connect/content_ru/ru/inform_resources/inform_retrieval_system/'; // URL сайта на котором будем авторизоваться
$urlTo = 'http://www.fips.ru/cdfi/fips2009.dll/login'; // URL на которой будем слать POST данные
$urlTobase = 'http://www.fips.ru/cdfi/Fips2009.dll/DB'; //URL выбора баз
$urlToBsaa = 'http://www.fips.ru/cdfi/Fips2009.dll/Query';
$login = 'guest'; // Ваш логин
$pass = 'guest'; // Ваш пароль
$post = '&Login='.$login.'&Password='.$pass; // POST данные
$ch = curl_init(); // Инициализируем сеанс CURL
curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
$html = curl_exec($ch); // Имитируем заход на сайт
curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Передаем POST данные

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch); // Записываем пришедшие данные в переменную 
preg_match('/NAME="SessionKey" TYPE="hidden" VALUE="(.*?)"/s', $html, $sk);//ищем на странице значение sessionkey и записываем в переменную sk

curl_setopt($ch, CURLOPT_URL, $urlTobase); //заходим на страницу выбора баз данных
curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST
curl_setopt($ch, CURLOPT_POSTFIELDS, "SessionKey=$sk[1]&Page=Query&RUPATABRU=RUPATABRU&RUPATAP=RUPATAP&RUPAT_NEW=RUPAT_NEW&RUPMAB=RUPMAB&RUPM_NEW=RUPM_NEW&IMPIN=IMPIN&RUPATABEN=RUPATABEN&MPK=MPK&RUTM_NEW=RUTM_NEW&MKTU=MKTU&RUDE_NEW=RUDE_NEW&MKPO=MKPO&SWDB=SWDB&TEST_DB=TEST_DB&TIMS=TIMS&DBGroups=DBGroup1,DBGroup2,DBGroup3,DBGroup4,DBGroup6,DBGroup7,DBGroup8,DBGroup9&DBGroupN=DBGroup9"); // Передаем POST данные

curl_setopt($ch, CURLOPT_URL, $urlToBsaa); //заходим на страницу формы о правообладателе
curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST
curl_setopt($ch, CURLOPT_POSTFIELDS, "SessionKey=$sk[1]&Search=true&QueryType=1&B731='11'"); // Передаем POST данные
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 


$html = curl_exec($ch); // Записываем пришедшие данные в переменную 


curl_close($ch); // Закрываем сеанс работы CURL
echo $html;
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы