PHP.SU

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

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

> Найдено сообщений: 8
Novi4ok Отправлено: 29 Марта, 2011 - 20:27:07 • Тема: curl, SSL, авторизация сайт tau-trade.com • Форум: Программирование на PHP

Ответов: 13
Просмотров: 1434
Champion пишет:
Novi4ok пишет:
Можете убрать эти две строчки, результат будет тот же.
А, точно.

Функция редиректа точно работает, проверял на sape.ru, там все отлично переходит в личный кабинет. Если по логике, то авторизация прошла, можно попробывать вывести страницу кабинета в файл. Сейчас попробую.
(Добавление)

РАБОТАЕТ!

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. {[TAU]}[Total Automobile Utilization]
  3. Уважаемый Денис
  4.  
  5. {[Выход] }
  6. {[Русский] }
  7.   * [Русский]
  8.   * {[Английский]}
  9.   * {[Японский]}
  10.   * {[Испанский]}
  11.   * Японское время
  12.   * 02:38
  13.   * a.m.
  14.   * {Главная страница}
  15.   * {Автомобили}
  16.   * {Другие товары}
  17.   * {Автозапчасти}
  18.   * {Аукцион}
  19.   * {Моя страница}
  20. МОЯ СТРАНИЦА
  21. Это Ваша персональная страница, защищенная Вашими ID и паролем.
  22. {Просмотреть/изменить мои данные}
  23.   Просмотр и изменение Ваших данных, указанных при регистрации (адрес электронной почты, номер телефона, условия торговли и т. д.).  
  24. {Изменение пароля}
  25.   Изменение Вашего пароля.  
  26. {История предложений}
  27.   Просмотр состояния сделанных Вами предложений.  
  28. {История покупок}
  29.   Просмотр инвойсов, состояния оплаты и отправки Ваших покупок.  
  30. {История платежей}
  31.   Просмотр истории Ваших платежей.  
  32. {Список пожеланий (Автомобили)}
  33.   Вы можете внести необходимые параметры (производителя, модель, ценовой диапазон и т. д.), и товары, отвечающие Вашим условиям, будут отображаться в Вашем "Списке пожеланий" каждый раз, когда Вы заходите на наш сайт. Информация в этом списке будет учитываться при закупках.  
  34. {Мой аукцион (текущие)}
  35.   Просмотр состояния ставок, хода и результатов аукционов.  
  36. {Мой аукцион (завершенные)}
  37.   Просмотр результатов аукционов, в которых Вы принимали участие.  
  38.   * {О компании}
  39.   * {Договор с клиентом}
  40.   * {Политика конфиденциальности }
  41.   * {Как сделать заказ}
  42.   * {Доставка и погрузка}
  43.   * {Вопросы и ответы}
  44.   * {Запрос}
  45.   * {Контакты}
  46.   * {Ссылки}
  47.   * {Карта сайта}
  48. Copyright © 2010 TAU Corporation. All Rights Reserved.
  49.  


Редирект почему то не срабатывает! Видимо нужно еще допилить... Спасибо что помогли разобратся!
Novi4ok Отправлено: 29 Марта, 2011 - 20:17:27 • Тема: curl, SSL, авторизация сайт tau-trade.com • Форум: Программирование на PHP

Ответов: 13
Просмотров: 1434
Champion пишет:
хм. я даже все-таки скопировал скритп себе, запустил. Получил страницу. Она начинается со слов
Уважаемый Денис
Выход

Значит, видимо, я авторизовался. По сравнению с приведенным здесь, добавил только те самые 2 строчки про ssl


Да, авторизовывается вроде как, но должно же редиректнуть было на страницу личного кабинета. Можете убрать эти две строчки, результат будет тот же.
Novi4ok Отправлено: 29 Марта, 2011 - 20:04:27 • Тема: curl, SSL, авторизация сайт tau-trade.com • Форум: Программирование на PHP

Ответов: 13
Просмотров: 1434
Champion пишет:
Есть подозрение, что первое получение страницы заканчивается ошибкой по поводу ssl сертификата. Поэтому оттуда не парсится __BEFORE_PAGE_NAME.
Что будет, если туда вставить тоже вот эти 2 штуки?
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);


Пробывал не помогает. Подозреваю что новый вызов curl_init, создает новый jseessionid.

Если в первый вызов добавить:
PHP:
скопировать код в буфер обмена
  1.  
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cook.txt');
  3. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cook.txt');
  4.  

то

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $cookies: __USE_LANGUAGE=ru;_SN=01;TS5236d1=64407fa3fe2b64730ff8737c7dd6463fff52096fe16dddc84d920e1960ac0ec57804f3ed60ac0ec54908ceb5c53bf70e91b33990e495398f9bf9da1cb3c4179fa26eaf10
  3. $POSTDATA: __login=&loginId=RU28538&password=1q2w3e&___BEFORE_PAGE_NAME=b7d5bab7ede3aacab24601b43227669b
  4. Redirecting to https://www.tau-trade.com/sec/MyPage.do
  5.  


cook.txt
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. # Netscape HTTP Cookie File
  3. # http://www.netscape.com/newsref/std/cookie_spec.html
  4. # This file was generated by libcurl! Edit at your own risk.
  5.  
  6. www.tau-trade.com       FALSE   /       FALSE   0       JSESSIONID      6A6EDF2DFBEE6CDF9BBD1BAFA32E87C4
  7. www.tau-trade.com       FALSE   /       TRUE    0       __S__KEY        20110330014155-204567744
  8. www.tau-trade.com       FALSE   /       FALSE   1316969953      __USE_LANGUAGE  ru
  9. www.tau-trade.com       FALSE   /       FALSE   0       _SN     01
  10. www.tau-trade.com       FALSE   /       FALSE   0       TS5236d1        85120cf73539cae7bf67ea58d4a6bf68ff52096fe16dddc84d920fe160ac0ec57804f3ed60ac0ec54908ceb5c53bf70e91b33990e495398f9bf9da1cb3c4179fa26eaf10
  11.  


Если убрать CURLOPT_COOKIEJAR, CURLOPT_COOKIEFILE:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $cookies:
  3. JSESSIONID=852E4A17B1C4728D69D7FBDF8473069F;JSESSIONID=8AE7119864F29AC5B0614218A3420460;__S__KEY=20110330020248-230191358;__USE_LANGUAGE=ru;_SN=01;TS5236d1=fed20b4cc8b18880029fb35118837b465587949972d489ec4d9210b860ac0ec5fa9f670660ac0ec5ea6bc719c53bf70e4914809ee495398f9bf9da1cb3c4179fa26eaf10
  4. $POSTDATA: __login=&loginId=RU28538&password=1q2w3e&___BEFORE_PAGE_NAME=b7d5bab7ede3aacab24601b43227669b
  5. Redirecting to https://www.tau-trade.com/sec/MyPage.do
  6.  


Почему не видно jsessionid. Хотя заголовок выводится одинаково. какая то особенность курла?

Может попробывать на все три страницы передать куки вручную, а не через файл?
Тогда вопрос при новом curl_init, jsessionid меняется? Как лучше сделать?
Novi4ok Отправлено: 29 Марта, 2011 - 19:27:03 • Тема: curl, SSL, авторизация сайт tau-trade.com • Форум: Программирование на PHP

Ответов: 13
Просмотров: 1434
Champion пишет:
Novi4ok пишет:
Cookie=__USE_LANGUAGE=ru; IMAGE_DISPLAY=1; LIST_COUNT=10; JSESSIONID=1ED59EE91677A2236F424A7548E216D0; __S__KEY=20110329231351-459279990; _SN=02;
с ним всё нормально

Это я в броузере смотрел, а вот на странице что выводит
CODE (html):
скопировать код в буфер обмена
  1.  
  2. HTTP/1.1 200 OK Date: Tue, 29 Mar 2011 15:40:08 GMT Set-Cookie: __USE_LANGUAGE=ru; Expires=Sun, 25-Sep-2011 15:40:08 GMT; Path=/ Content-Type: text/html;charset=UTF-8 Set-Cookie: _SN=02; path=/ Set-Cookie: TS5236d1=ad608987b831b33bc4750511eb704daf52a311fe28e627c64d91fca860ac0ec5fbf7e16360ac0ec5072271b0c53bf70ed3400973e495398f9bf9da1cb3c4179f96890789; Path=/ Transfer-Encoding: chunked
  3.  
Novi4ok Отправлено: 29 Марта, 2011 - 19:12:39 • Тема: curl, SSL, авторизация сайт tau-trade.com • Форум: Программирование на PHP

Ответов: 13
Просмотров: 1434
Champion пишет:
блин, это внимательно отлаживать надо. Может на выходных попробую, если не получится раньше ни у кого



Меня смущает что в файле cook.txt есть JSESSIONID, а при выводе на странице нету...
Novi4ok Отправлено: 29 Марта, 2011 - 18:41:17 • Тема: curl, SSL, авторизация сайт tau-trade.com • Форум: Программирование на PHP

Ответов: 13
Просмотров: 1434
Champion пишет:

А обычный CURLOPT_FOLLOWLOCATION не работает?

safe_mode
Champion пишет:

А на получаемой странице при это ничего не написано? Типа неправильный пароль или ошибка при проверке этих вот __BEFORE_PAGE_NAME ?

Появляется кривая страница авторизации(без картинок и css), а в input вбит логин и пароль.
__BEFORE_PAGE_NAME пока не понял от чего зависит, даже после удаления куков в броузере, при получении новых, value на странице такой же.

Champion пишет:

Это которая курлом получается или которая настоящая?

Настоящая, curl-ом такая
HTTP/1.1 200 OK Date: Tue, 29 Mar 2011 15:40:08 GMT Set-Cookie: __USE_LANGUAGE=ru; Expires=Sun, 25-Sep-2011 15:40:08 GMT; Path=/ Content-Type: text/html;charset=UTF-8 Set-Cookie: _SN=02; path=/ Set-Cookie: TS5236d1=ad608987b831b33bc4750511eb704daf52a311fe28e627c64d91fca860ac0ec5fbf7e16360ac0ec5072271b0c53bf70ed3400973e495398f9bf9da1cb3c4179f96890789; Path=/ Transfer-Encoding: chunked
Champion пишет:
А чего с самого нечала не воспользовались CURLOPT_COOKIEFILE ?
(Добавление)
Закомментированный отладочный вывод что-нибудь показывает интересное?

Пробывал разные варианты, в отладке то что и должно быть...
Novi4ok Отправлено: 29 Марта, 2011 - 17:16:12 • Тема: curl, SSL, авторизация сайт tau-trade.com • Форум: Программирование на PHP

Ответов: 13
Просмотров: 1434
Помогите разобраться...
сайт www[dot]tau-trade[dot]com
сразу идет редиркет на http://www[dot]tau-trade[dot]com/gen/TopPage[dot]do
на все страницах присутствует ___BEFORE_PAGE_NAME, ___HIDDEN_BEFORE_PATH
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="hidden" name="___BEFORE_PAGE_NAME" value="0f949149d1dd117deb66cbff6fa7bd2f">
  3. <input type="hidden" name="___HIDDEN_BEFORE_PATH" value="cf1192518f9454aba14f18199852f73c14bfde9ac8e677e16b7d99a880e83f26d2760c75e8679a56">
  4.  


страница авторизации https://www[dot]tau-trade[dot]com/sec/Login[dot]do

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="hidden" name="___BEFORE_PAGE_NAME" value="b7d5bab7ede3aacab24601b43227669b">
  3. <input type="hidden" name="___HIDDEN_BEFORE_PATH" value="cf1192518f9454aba14f18199852f73c14bfde9ac8e677e16b7d99a880e83f26d2760c75e8679a56">
  4.  


Если на эту страницу прийти сразу, то ___HIDDEN_BEFORE_PATH отсутсвует и не передается



Пытаюсь авторизоваться через curl
и получить страницу личного кабинета. Логины и пароль настоящие, просто мои данные там не такие. Код рабочий но авторизацию не проходит... Что я делаю не так?
CODE (php):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $FORMURL='https://www.tau-trade.com/sec/Login.do';
  4. $user_agent = 'Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0';
  5. $headers = array
  6.       (
  7.           'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  8.           'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
  9.           'Accept-Encoding: gzip,deflate',
  10.           'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
  11.       );
  12.  
  13.  
  14.     $ch = curl_init();
  15.     curl_setopt($ch, CURLOPT_USERAGENT,$user_agent);
  16.     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  17.     curl_setopt($ch, CURLOPT_URL, $FORMURL);
  18.     curl_setopt($ch, CURLOPT_HEADER, 1);
  19.     curl_setopt($ch, CURLOPT_NOBODY, 0);
  20.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  21.     curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); // не использовать cache
  22.     $result = curl_exec($ch);
  23.     curl_close($ch);
  24.     preg_match_all('|Set-Cookie: (.*);|U', $result, $results);  
  25.     $cookies = implode(';', $results[1]);
  26.     preg_match('/\<input type="hidden" name="___HIDDEN_BEFORE_PATH" value="(\w+)"\>/', $result, $HBP);
  27.     preg_match('/\<input type="hidden" name="___BEFORE_PAGE_NAME" value="(\w+)"\>/', $result, $BPN);
  28.     $params=array("0"=>$cookies, "1"=>$BPN[1], "2"=>$HBP[1]);
  29.     $POSTDATA='__login=&loginId=RU7777&password=77777&___BEFORE_PAGE_NAME='.$params[1];
  30.  
  31.  
  32. #echo '<br><b>'.$params[0].'</b><br>';
  33. #echo $POSTDATA.'<br>';
  34.    $ch = curl_init();
  35.     curl_setopt($ch, CURLOPT_USERAGENT,$user_agent);
  36.     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  37.     curl_setopt($ch, CURLOPT_URL, $FORMURL);
  38.     curl_setopt($ch, CURLOPT_COOKIE, $params[0]);
  39.     curl_setopt($ch, CURLOPT_COOKIEJAR, '/public_html/tmp/tau/cook.txt');
  40.     curl_setopt($ch, CURLOPT_COOKIEFILE, '/public_html/tmp/tau/cook.txt');
  41.     curl_setopt($ch, CURLOPT_FAILONERROR, 1);
  42.     #curl_setopt($ch, CURLOPT_REFERER, 'https://www.tau-trade.com/sec/Login.do');
  43.    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  44.     curl_setopt($ch, CURLOPT_POST, 1);
  45.     curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTDATA);
  46.     curl_setopt($ch, CURLOPT_HEADER, 1);
  47.     curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
  48.     curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
  49.     #curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
  50.    curl_setopt($ch, CURLOPT_ENCODING, "gzip");
  51.  
  52.     #print_r(curl_getinfo($ch));  
  53.    #echo "\n\ncURL error number:" .curl_errno($ch);  
  54.    #echo "\n\ncURL error:" . curl_error($ch);  
  55.    // ...close cURL handle ($ch) below  
  56.     $result=curl_redir_exec($ch);
  57.     curl_close($ch);
  58.     echo $result;
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. function curl_redir_exec($ch)
  67. {
  68. static $curl_loops = 0;
  69. static $curl_max_loops = 20;
  70. if ($curl_loops++ >= $curl_max_loops)
  71. {
  72. $curl_loops = 0;
  73. return FALSE;
  74. }
  75. curl_setopt($ch, CURLOPT_HEADER, true);
  76. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  77. $data = curl_exec($ch);
  78. #list($header, $data) = explode("\n\n", $data, 2);
  79. list($header, $data) = explode("\x0D\x0A\x0D\x0A", $data, 2);
  80. $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  81. if ($http_code == 301 || $http_code == 302)
  82. {
  83. $matches = array();
  84. preg_match('/Location:(.*?)\n/', $header, $matches);
  85. #print_r($matches);
  86. $url = @parse_url(trim(array_pop($matches)));
  87. #print_r($url);
  88.  
  89.  
  90. if (!$url)
  91. {
  92. //couldn't process the url to redirect to
  93. $curl_loops = 0;
  94. return $data;
  95. }
  96.  
  97. $last_url = parse_url(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL));
  98. #print_r($last_url);
  99. if (empty($url['scheme']))
  100. {
  101. $url['scheme'] = $last_url['scheme'];
  102. }
  103. if (empty($url['host']))
  104. {
  105. $url['host'] = $last_url['host'];
  106. }
  107. //if (empty($url['path']))
  108. //{
  109. //$url['path'] = $last_url['path'];
  110. //}
  111. $new_url = $url['scheme'] . '://' . $url['host'] . $url['path'] . ($url['query']?'?'.$url['query']:'');
  112. #$new_url='https://www.tau-trade.com/sec/MyPage.do';
  113. curl_setopt($ch, CURLOPT_URL, $new_url);
  114. echo 'Redirecting to '.$new_url;
  115. return curl_redir_exec($ch);
  116.  
  117. } else {
  118. $curl_loops=0;
  119. return $data;
  120. }
  121. }
  122.  
  123.  
  124.  
  125.  
  126.  
  127. ?>
  128.  


Шапка про POST:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Host=www.tau-trade.com
  3. User-Agent=Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
  4. Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  5. Accept-Language=ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
  6. Accept-Encoding=gzip, deflate
  7. Accept-Charset=windows-1251,utf-8;q=0.7,*;q=0.7
  8. Keep-Alive=115
  9. Connection=keep-alive
  10. Referer=https://www.tau-trade.com/sec/Login.do
  11. Cookie=__USE_LANGUAGE=ru; IMAGE_DISPLAY=1; LIST_COUNT=10; JSESSIONID=607E0F326D2C548A598AE88C81F9FAAD; __S__KEY=20110329111646-831440505; _SN=02; TS5236d1=83cbb606f2121078d31706ef0d79e6d67fd05d0fc2f940994d9155a560ac0ec59cb615e660ac0ec5549a1628c53bf70eb85a59cce495398f9bf9da1cb3c4179f968907895bd02608a28dfd269fefd924148da519
  12. Content-Type=application/x-www-form-urlencoded
  13. Content-Length=197
  14. POSTDATA=__login=&loginId=mylogin&password=mypass&___BEFORE_PAGE_NAME=b7d5bab7ede3aacab24601b43227669b&___HIDDEN_BEFORE_PATH=cf1192518f9454aba14f18199852f73c14bfde9ac8e677e16b7d99a880e83f26d2760c75e8679a56
  15.  


Если сразу заходить на https://www.tau-trade.com/sec/Login.do, то шапка такая:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. Host=www.tau-trade.com
  3. User-Agent=Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
  4. Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  5. Accept-Language=ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
  6. Accept-Encoding=gzip, deflate
  7. Accept-Charset=windows-1251,utf-8;q=0.7,*;q=0.7
  8. Keep-Alive=115
  9. Connection=keep-alive
  10. Referer=https://www.tau-trade.com/sec/Login.do
  11. Cookie=__USE_LANGUAGE=ru; IMAGE_DISPLAY=1; LIST_COUNT=10; JSESSIONID=1ED59EE91677A2236F424A7548E216D0; __S__KEY=20110329231351-459279990; _SN=02; TS5236d1=4a0e38d44528592f926c0730cc871d877fd05d0fc2f940994d91e91f60ac0ec5c44acf3160ac0ec5549a1628c53bf70efb5284d8e495398f9bf9da1cb3c4179f968907895bd02608a28dfd269fefd924148da519
  12. Content-Type=application/x-www-form-urlencoded
  13. Content-Length=93
  14. POSTDATA=__login=&loginId=RU28538&password=1q2w3e&___BEFORE_PAGE_NAME=b7d5bab7ede3aacab24601b43227669b
  15.  


cook.txt

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. # Netscape HTTP Cookie File
  3. # http://www.netscape.com/newsref/std/cookie_spec.html
  4. # This file was generated by libcurl! Edit at your own risk.
  5.  
  6. www.tau-trade.com       FALSE   /       FALSE   0       JSESSIONID      30D22125A57D9782EDD2E29AE019CE81
  7. www.tau-trade.com       FALSE   /       TRUE    0       __S__KEY        201103300023416403922119
  8. www.tau-trade.com       FALSE   /       FALSE   1316964221      __USE_LANGUAGE  ru
  9. www.tau-trade.com       FALSE   /       FALSE   0       _SN     02
  10. www.tau-trade.com       FALSE   /       FALSE   0       TS5236d1        b7b570ea9c2fd1c3ac9c72ccc08a727d52a311fe28e627c64d91f97d60ac0ec5fbf7e16360ac0ec5072271b0c53bf70ed3400973e495398f9bf9da1cb3c4179f96890789
  11.  
Novi4ok Отправлено: 29 Марта, 2011 - 06:48:14 • Тема: Урок № 14 - CURL • Форум: Уроки php

Ответов: 9
Просмотров: 185
Вопрос перенес сюда http://forum.php.su/topic.php?fo...08172#1301408172

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB