[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: CURL не возвращает результата.
dennnyk
Есть маленький скрипт призванный логинить меня на некий сайт www.beatport.com. Логин происходит методом POST однако можно эмулировать и через GET. То есть можно войти туда и по ссылке со скриптом логина приписав логин и пароль: https://www.beatport.com/en-US/xml/account/...=as148fgas148fg . Результатом логина на экран приезжает XML с подтверждением:
<?xml version="1.0" encoding="utf-8"?>
<response>
<link>
<![CDATA[]]></link>
<result >
</result>
<msgs>
<msg
type="success"/>
</msgs>
</response>


Значит все ОК. Так вот я пытаюсь залогиниться через скрипт:
<?                                                                                                                                                                             
$login = 'dennnyk';
$pass = 'as148fgas148fg';
$referer = "www.google.ru";
$url = 'https://www.beatport.com/en-US/xml/account/authentication/login/';
$data = array('username' => $login, 'password' => $pass);
$headers = array (
'POST /en-US/xml/account/authentication/login/ HTTP/1.1',
'Host: www.beatport.com',
'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; ru; rv:1.9.2.3) Gecko/20100401 MRA 5.4 (build 02647) Firefox/3.6.3 ( .NET CLR 3.5.30729)',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
'Accept-Encoding: gzip,deflate',
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
'Keep-Alive: 115',
'Connection: keep-alive' );

$load = curl_init();

if (is_array($headers)) { // если заданы какие-то заголовки для браузера
curl_setopt($load, CURLOPT_HTTPHEADER, $headers);
}

curl_setopt($load, CURLOPT_HEADER, 0);
curl_setopt($load, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($load, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.2; ru; rv:1.9.2.3) Gecko/20100401 MRA 5.4 (build 02647) Firefox/3.6.3 (.NET CLR 3.5.30729)");
curl_setopt($load, CURLOPT_URL, $url);
curl_setopt($load, CURLOPT_AUTOREFERER, 1);
curl_setopt($load, CURLOPT_REFERER, $referer);
// curl_setopt($load, CURLOPT_HTTPHEADER, 1); // Передаются ли HTTP заголовки
curl_setopt($load, CURLOPT_HEADER, 1); // Включать заголовки в ответ
curl_setopt($load, CURLOPT_POST, 1);
curl_setopt($load, CURLOPT_POSTFIELDS, $data);
curl_setopt($load, CURLOPT_COOKIEFILE, 'step1-cookiefile.txt');
curl_setopt($load, CURLOPT_COOKIEJAR, 'step1-COOKIEJAR.txt');
curl_setopt($load, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($load, CURLOPT_HTTP200ALIASES, array('HTTP/1.1 200 OK'));
curl_setopt($load, CURLOPT_QUOTE, array(''));
curl_setopt($load, CURLOPT_POSTQUOTE, array(''));

$cont = curl_exec($load);
curl_close ($load);

print "$cont";
?>

Однако в результате работы моего скрипта экран остается чистм!!! Словно Курс
и не ходил по указанному адресу. Не понимаю в чем может быть дело ...



Спустя 2 минуты, 19 секунд (28.04.2010 - 15:17) xotabb написал(а):
сегодня подумаю, если найду решение, выложу вечером

Спустя 1 час, 7 минут, 29 секунд (28.04.2010 - 16:25) dennnyk написал(а):
СПАСИБО.

Спустя 2 минуты, 21 секунда (28.04.2010 - 16:27) waldicom написал(а):
Вы точно хотели показывать всем свой пароль? Я пока отредактировал Ваше сообщение, но если Вы так и хотели, то прошу прощения. Тогда могу все вернуть.

Спустя 33 минуты, 45 секунд (28.04.2010 - 17:01) dennnyk написал(а):
Да я хотел показать для возможности проверить. Спасибо, но верните

Спустя 5 часов, 52 минуты, 29 секунд (28.04.2010 - 22:53) dennnyk написал(а):
Я вот хочу сравнить заголовок запроса моего CURL детища с обычным обращением в браузере.
Однако не знаю каким образом выловить то что в итоге отправляется CURL'ом на сервер.
Кто-то знает способ логировать те HTTP пакет, что отправляет CURL ?

Спустя 40 минут, 1 секунда (28.04.2010 - 23:33) waldicom написал(а):
Обычным сниффером?

Спустя 1 час, 45 минут, 17 секунд (29.04.2010 - 01:19) dennnyk написал(а):
Прошу прощения - может не помочь наверно. Запрос идет на HTTPS адрес.

Спустя 6 часов, 40 минут, 1 секунда (29.04.2010 - 07:59) justIAM написал(а):
Привет!
С Курлом совсем немного экспериментировал
Самый простой скрипт для работы с curl:

<?php

$login='dennnyk';
$pass = 'as148fgas148fg';
$data=array('username'=>$login,'password'=>$pass);

$url = 'https://www.beatport.com/en-US/xml/account/authentication/login/';
$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // ??? см ссылку ниже
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // ???
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data); // Передаваемые данные
curl_setopt($ch, CURLOPT_URL, $url); // адрес вызываемого скрипта
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_exec вернёт результат исполнения скрипта в переменную $result, а не браузеру

$result = curl_exec($ch);
curl_close($ch);

var_dump($result);
?>

выдаёт нужный резалт, а Твой скрипт по прежнему ничего не возвращает, так что ищи траблу

http://www.landgraph.ru/index.php?object=89 --- работа с curl по https


Спустя 21 минута, 22 секунды (29.04.2010 - 08:20) dennnyk написал(а):
Вот так. Огромное спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.