Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Импорт с Библио Глобус. Авторизация через curl

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Shefarik
Отправлено: 24 Января, 2016 - 15:47:51
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Здравствуйте.
Мне нужно получить страницу с информацией с турами с сервиса Библио Глобус. У них изменился способ авторизации и с ним у меня пока проблема. У них есть API по выгрузке но по авторизации не очень много написано http://export.bgoperator.ru/load-xml-prices.html. Как и написано инстурукции я получил значения куков A, L и Z. Если авторизироваться на сервисе через браузер и зайти например на $url = 'http://export.bgoperator.ru/yandex?action=resorts' там будет то что в прикрепленном скрине. Мне нужно получить это все в php. Дальше с помощью curl я хочу вытащить данные например по турам.

PHP:
скопировать код в буфер обмена
  1.  
  2.         $header  = array(
  3.           'Accept-Encoding: gzip',
  4.         );
  5.  
  6.         $cookie = "A=" . $a . ";L=" . $l . ";Z=" . $z;
  7.  
  8.         $curl = curl_init();
  9.         curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  10.         curl_setopt($curl, CURLOPT_URL, $url);
  11.         //Настойка опций cookie
  12.         curl_setopt($curl, CURLOPT_COOKIE, $cookie);
  13.         curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0");
  14.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  15.         curl_setopt($curl, CURLOPT_TIMEOUT, 5);
  16.         curl_setopt($curl, CURLOPT_HEADER, 1);
  17.         $result = curl_exec($curl);
  18.         curl_close($curl);
  19.  


В $a, $l и $z значения кук, $url = 'http://export.bgoperator.ru/yandex?action=resorts'

Но в $result я получаю страницу что по $url но для неавторизированого пользователя , тоесть выдает код с «Регистрация для агентств»,«Регистрация для частных лиц»

Как мне улучшить код что б проходила авторизация и я мог получить нужную информацию?
Прикреплено изображение (Нажмите для увеличения)
resorts.png

(Отредактировано автором: 24 Января, 2016 - 15:50:06)

 
 Top
Shefarik
Отправлено: 26 Января, 2016 - 00:26:26
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Обновил код до:
PHP:
скопировать код в буфер обмена
  1.  
  2.         $header  = array(
  3.           'Accept-Encoding: gzip',
  4.         );
  5.  
  6.         $cookie = "A=" . $a . ";L=" . $l . ";Z=" . $z;
  7.         $path = drupal_get_path('module', 'bgtours_importer');
  8.  
  9.         $curl = curl_init();
  10.         curl_setopt($curl, CURLOPT_URL, $login_url);
  11.         curl_setopt($curl, CURLOPT_HEADER, 1);
  12.         curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  13.         curl_setopt($curl, CURLOPT_POST, 1);
  14.         curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  15.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  16.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  17.         curl_setopt($curl, CURLOPT_COOKIEJAR, $path . '/cookie.txt');
  18.         curl_setopt($curl, CURLOPT_COOKIEFILE,  $path . '/cookie.txt');
  19.         curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0");
  20.         // curl_setopt($curl, CURLOPT_HEADERFUNCTION, "getCookie");
  21.         curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  22.         curl_setopt($curl, CURLOPT_POSTFIELDS, //тут переменные которые будут переданы методом POST
  23.           array (
  24.             'login' => 'login_changed_for_forum',
  25.             'pwd' => 'pass_changed_for_forum',
  26.           ));
  27.         // curl_setopt($curl, CURLOPT_COOKIE, $cookie);
  28.         $result = curl_exec($curl);
  29.         drupal_set_message('<pre><b>Debug 1:</b> ' . check_plain(print_r($result, 1)) . '</pre>');
  30.         if(!$result) {
  31.           $error = curl_error($curl).'('.curl_errno($curl).')';
  32.           drupal_set_message('<pre><b>Debug curl_error:</b> ' . check_plain(print_r($error, 1)) . '</pre>');
  33.         }
  34.         else{
  35.           curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  36.           curl_setopt($curl, CURLOPT_URL, $url);
  37.           //Настойка опций cookie
  38.           curl_setopt($curl, CURLOPT_COOKIE, $cookie);
  39.           curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0");
  40.           curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  41.           curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  42.           curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  43.           curl_setopt($curl, CURLOPT_HEADER, 1);
  44.           curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  45.           curl_setopt($curl, CURLOPT_COOKIEJAR, $path . '/cookie.txt');
  46.           curl_setopt($curl, CURLOPT_COOKIEFILE,  $path . '/cookie.txt');
  47.           $result = curl_exec($curl);
  48.         }
  49.         curl_close($curl);
  50.         drupal_set_message('<pre><b>Debug 2:</b> ' . check_plain(print_r($result, 1)) . '</pre>');  
  51.  


пока всеравно в конце в $result страница для не авторизированого пользователя. Почему же не проходит авторизация?

(Отредактировано автором: 26 Января, 2016 - 00:27:27)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB