За последние 24 часа нас посетили 20907 программистов и 1109 роботов. Сейчас ищут 374 программиста ...

CURL проблемы с авторизацией

Тема в разделе "PHP для новичков", создана пользователем lexus1990, 28 сен 2011.

  1. lexus1990

    lexus1990 Активный пользователь

    С нами с:
    7 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Опишу суть проблемы. Авторизуюсь на сайте первым запросом, проверяю по ob_get_contents - авторизовался. Далее нужно отправить POST запрос. Но в выдаче ob_get_contents - страница с просьбой авторизоваться. Куки сохраняются в файл - проверял. Для безопасности сменил пароль и логин. Если будет желание помочь - кину пароль с логином в личку. Сохранял логи и делал через har2php.sharecoder.com - создает php на основе логов. Чувствую, что ошибка где-то в нескольких заголовках. Заранее огромное спасибо!!! Вот как код:
    PHP:
    1.  
    2. $cookie_file = $_SERVER['DOCUMENT_ROOT'].'/offers/cookies_teztour.txt';
    3. $ch = curl_init();
    4. $teztour_login="LOGIN";
    5. $teztour_passwd="PASS";
    6. $host = "online.teztour.com";
    7. $url = "/UserServer/login.htm";
    8.        
    9. curl_setopt($ch, CURLOPT_URL, 'http://'.$host.$url);
    10. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2');
    11. curl_setopt($ch, CURLOPT_REFERER, 'http://online.teztour.com/UserServer/index.htm?ref=http%3A%2F%2Fonline.teztour.com%2Farmmanager%2F');
    12. curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
    13. сurl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    14. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    15.  
    16. $header = array();
    17. $header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    18. $header[] = 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7';
    19. $header[] = 'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
    20. $header[] = 'Pragma: ';
    21. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    22. curl_setopt($ch, CURLOPT_POST, true);
    23.  
    24. $fields = array();
    25. $fields[] = 'j_password='.$teztour_passwd;
    26. $fields[] = 'j_username='.$teztour_login;
    27. $fields[] = 'ref=http://online.teztour.com/armmanager/';
    28. $fields[] = 'submit=Войти / Sign in';
    29.  
    30. curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $fields));
    31. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    32. curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    33. curl_setopt($ch, CURLOPT_HEADER, 1);
    34. $result = curl_exec($ch);
    35. $html_result = iconv('UTF-8', 'windows-1251', ob_get_contents());
    36.  
    37. var_dump($html_result);
    38.  
    39. curl_setopt($ch, CURLOPT_URL, 'http://online.teztour.com/armmanager/workplace/search/getResult');
    40. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2');
    41. curl_setopt($ch, CURLOPT_REFERER, 'http://online.teztour.com/armmanager/workplace/section/tour-search');
    42. curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
    43. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    44. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    45. curl_setopt($ch, CURLOPT_HEADER, 0);
    46. curl_setopt($ch, CURLOPT_POST, true);
    47.  
    48. $fields = array();
    49. $fields[] = 'accommodationId='.$price['room'];
    50. $fields[] = 'after='.$price['depature_date'];
    51. $fields[] = 'before='.$price['depature_date'];
    52. $fields[] = 'cityId='.$price['city_from'];
    53. $fields[] = 'countryId='.$price['country'];
    54. $fields[] = 'currency='.$price['currency'];
    55. $fields[] = 'hotelClassBetter=true';
    56. $fields[] = 'hotelClassId=2567';
    57. $fields[] = 'hotelId='.$price['hotel'];
    58. $fields[] = 'hotelInStop=true';
    59. $fields[] = 'locale=ru';
    60. $fields[] = 'nightsMax='.$price['days'];
    61. $fields[] = 'nightsMin='.$price['days'];
    62. $fields[] = 'noTicketsFrom=false';
    63. $fields[] = 'noTicketsTo=false';
    64. $fields[] = 'priceMax='.$price['price'];
    65. $fields[] = 'priceMin='.$price['price'];
    66. $fields[] = 'rAndBBetter=true';
    67. $fields[] = 'rAndBId=15350';
    68. $fields[] = 'specialInStop=undefined';
    69. $fields[] = 'tourId='.$price['city_to'];
    70. $fields[] = 'tourType=1';
    71. $fields[] = 'version=2';
    72.        
    73. curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $fields));
    74. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    75. curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    76. $result = curl_exec($ch);
    77. $html_result = iconv('UTF-8', 'windows-1251', ob_get_contents());
    78. var_dump($html_result);
    79.