[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: CURL не работает
AquaGen
Никогда раньше не пользовался. Надо в киви кошелек попасть. Ничо не работает :( Что делать?


function _auth( $cookies ) {

$c = curl_init();

curl_setopt($c, CURLOPT_HEADER, 0);

curl_setopt($c, CURLOPT_HTTPHEADER, array('X-Requested-With: XMLHttpRequest'));
curl_setopt($c, CURLOPT_REFERER, 'https://w.qiwi.ru/features.action');

curl_setopt($c, CURLOPT_URL,'https://w.qiwi.ru/login.action?source=0&phone=***&password=***&captcha=0&callback=jsonp1327314304027');

curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($c, CURLOPT_COOKIEJAR, $cookies);

curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13)');

$r = curl_exec($c);

curl_close($c);

}




function _auth2( $cookies ) {

$c = curl_init();

curl_setopt($c, CURLOPT_HEADER, 0);

curl_setopt($c, CURLOPT_HTTPHEADER, array('X-Requested-With: XMLHttpRequest'));
curl_setopt($c, CURLOPT_REFERER, 'https://w.qiwi.ru/features.action');

curl_setopt($c, CURLOPT_URL,'https://w.qiwi.ru/userdata.action?refresh=true&_=1327314309800');

curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($c, CURLOPT_COOKIEJAR, $cookies);

curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13)');

$r = curl_exec($c);

curl_close($c);

}





function _params($cookies) {

$c = curl_init();

curl_setopt($c, CURLOPT_HEADER, 1);

curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($c, CURLOPT_REFERER, 'https://w.qiwi.ru/features.action');

curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');


curl_setopt($c, CURLOPT_COOKIEFILE, $cookies);

curl_setopt($c, CURLOPT_URL, 'https://w.qiwi.ru/features/smsconfirm/description.action');

$r = curl_exec($c);

curl_close($c);
echo $c;
}

_auth ('test.txt');
_auth2('test2.txt');
_params('test2.txt');


с CURLOPT_COOKIEJAR тоже непонятно. написано, что это файл куда куки сохраняются. а где он? на сервере в папке со скриптом например я его не нашел.
эта штука вместо страницы выводит у меня "Resource id #4"



Спустя 19 минут, 11 секунд (23.01.2012 - 14:42) Игорь_Vasinsky написал(а):
а курл то установлен? ошибки?

в начало кода
error_reporting(E_ALL);

Спустя 13 минут, 18 секунд (23.01.2012 - 14:55) AquaGen написал(а):
Установлен, примеры другие вроде работали. я может что-то не так пишу. ошибок нет
судя по HTTPAnalyzerFullV6
при заходе на сайт случается следующее:
Цитата



(Request-Line):GET /login.action?source=0&phone=***&password=***&captcha=0&callback=jsonp1327314304027 HTTP/1.1
Host:w.qiwi.ru
X-Requested-With:XMLHttpRequest
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
Referer:https://w.qiwi.ru/features.action
Accept:text/javascript, application/javascript, */*
Accept-Language:ru-RU
Accept-Encoding:gzip, deflate
Cookie:__utma=153665022.1427163183.1326299772.1326299772.1327312006.2; __utmb=153665022.3.10.1327312006; __utmc=153665022; __utmz=153665022.1326299772.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); JSESSIONID=8F92C9D088FF55E6459505D01C643D07.node-14.1; __utma=200106670.1105698977.1326299747.1326299747.1327313341.2; __utmb=200106670.2.10.1327313341; __utmc=200106670; __utmz=200106670.1326299747.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Connection:keep-alive

<a href='https://w.qiwi.ru/userdata.action?refresh=true&_=1327314309800'>https://w.qiwi.ru/userdata.action?refresh=t..._=1327314309800


(Request-Line):GET /userdata.action?refresh=true&_=1327314309800 HTTP/1.1
Host:w.qiwi.ru
X-Requested-With:XMLHttpRequest
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
Referer:https://w.qiwi.ru/features.action
Accept:text/html, */*
Accept-Language:ru-RU
Accept-Encoding:gzip, deflate
Cookie:__utma=153665022.1427163183.1326299772.1326299772.1327312006.2; __utmb=153665022.3.10.1327312006; __utmc=153665022; __utmz=153665022.1326299772.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); JSESSIONID=8F92C9D088FF55E6459505D01C643D07.node-14.1; __utma=200106670.1105698977.1326299747.1326299747.1327313341.2; __utmb=200106670.2.10.1327313341; __utmc=200106670; __utmz=200106670.1326299747.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Connection:keep-alive


<a href='https://w.qiwi.ru/features/smsconfirm/description.action'>https://w.qiwi.ru/features /smsconfirm/description.action</a>
...







Спустя 4 часа, 7 минут (23.01.2012 - 19:02) walerus написал(а):
Судя по этому "https://w.qiwi.ru/features /smsconfirm/description.action", оно требует подтверждение по sms, но я могу путать.

Спустя 8 минут, 33 секунды (23.01.2012 - 19:10) alex12060 написал(а):
Не работает потому-что ты возвращаешь результат запроса в переменную $r, но не делаешь echo

Спустя 4 часа, 2 минуты, 2 секунды (23.01.2012 - 23:12) Игорь_Vasinsky написал(а):
laugh.gif так не echo и не return .. у тя функции-молчуны. wink.gif

Спустя 3 часа, 33 минуты, 47 секунд (24.01.2012 - 02:46) AquaGen написал(а):
https://w.qiwi.ru/features /smsconfirm/description.action
не, это следующая станица, нормальная уже. на которой все хотят разрешения, чтобы отправлять мне разные смс
из $r вообще ничего не выводится
если в _params поставить echo $r

Спустя 22 часа, 46 минут, 49 секунд (25.01.2012 - 01:33) walerus написал(а):
У тебя во всех примерах ошибки...
Во первых, поля для отправки:

source=0
phone=734534
password=42342
captcha=0


Во вторых отправляем обычным методом POST.
В третьих поддержка кук должна быть.
В четвертых соединение HTTPS, а не HTTP.


$cookie_filename = uniqid(md5(time()), true).'.tmp';

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1');
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_filename);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_filename);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

$form = array(
'source' => '0',
'phone' => 'Сюда телефон',
'password' => 'Сюда пассворд',
'captcha' => '0' );

curl_setopt($curl, CURLOPT_URL, 'https://w.qiwi.ru/features.action');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($form));

$page = curl_exec($curl);

print_r( $page );

curl_close($curl);

Попробуй так.

Спустя 7 часов, 32 минуты, 8 секунд (25.01.2012 - 09:05) AquaGen написал(а):
обычная главная страница загружается. не входит.
так там же X-Requested-With:XMLHttpRequest
может это проверяется тоже где-нибудь? и отправляется все гетом

Спустя 3 часа, 40 минут, 18 секунд (25.01.2012 - 12:45) walerus написал(а):
Там два варианта,
1) При включенной яве, т.е. в броузере, загружается форма аяксом, и поля передаются иные
2) Вариант, без явы, т.е. скриптом, получается форма которую я указал, и отправляется имеено постом.

<h1>Вход в систему</h1>
<form
id="authForm" method="post">
<input
type="hidden" id="source" name="source" value="0"/>
<p>
Номер телефона</p>
<div
class="internationalMenu">
<div
class="plus">+</div>
<p
class="reground"><input type="text" id="phone" name="phone" value="7" maxlength="15"/></p>
</div>
<p>
Пароль</p>
<p
class="reground"><input type="password" name="password" autocomplete="off"/></p>
<input
type="hidden" name="captcha" value="0"/>
<p
class="uiBtBlue float_right"><span><input id="authorizationButton" value="Войти" name="" type="submit"></span></p>
<p
class="menu_auth" id="certificateBlock" style="display: none;">Сертификат <input type="checkbox" name="cert" value="true" id="cert" /></p>
</form>


Вот форма, я тут метод ГЕТ - не вижу, вижу только метод ПОСТ

Поля формы
1) <input type="hidden" id="source" name="source" value="0"/> - name="source" value="0" - НЕ изменяется
2) <input type="text" id="phone" name="phone" value="7" maxlength="15"/> - name="phone" value="7" - изменяется
3) <input type="password" name="password" autocomplete="off"/> - name="password" - изменяется
4) <input type="hidden" name="captcha" value="0"/> - name="captcha" value="0" - НЕ изменяется
5) <input id="authorizationButton" value="Войти" name="" type="submit"> - value="Войти" name="", тут нет имени, я так думаю что можно не указывать

Сертификат тоже не нужен.

Если не получается можешь в ПМ скинуть данные по логину( потом сменишь пароль ) если доверяешь конечно, постараюсь помочь, своего кошелька нету что б проверить.

Спустя 22 часа, 10 минут, 6 секунд (26.01.2012 - 10:56) walerus написал(а):
Был неправ, я ошибся, там GET параметром получаются данные, хотя в форме стоит POST, странно как то )).

Папку temp создай, туда куки складываться будут временные.

<?php
//отправляем заголовки о том что низя нас кэшировать
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Content-Type: text/html; charset=utf-8");
header("Pragma: no-cache");

set_time_limit(0);
error_reporting(E_ALL);
define('ROOT', dirname(__FILE__).'/');

$cookie_filename = ROOT.'temp/'.uniqid(md5(time()), true).'.tmp';

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1');
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_filename);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_filename);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

$phone = 'Сюда Телефон ';
$password = 'Сюда Пассворд';

curl_setopt($curl, CURLOPT_REFERER, 'https://w.qiwi.ru/features.action' );
curl_setopt($curl, CURLOPT_URL, 'https://w.qiwi.ru/login.action?source=0&phone=' .$phone. '&password=' .$password. '&captcha=0' );
$page = curl_exec($curl);

## Обновляем страницу
curl_setopt($curl, CURLOPT_URL, 'https://w.qiwi.ru/userdata.action?refresh=true' );
$page = curl_exec($curl);

print_r( $page );

@unlink($cookie_filename); //удаляем куку, если нужно
curl_close($curl);
?>
Быстрый ответ:

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