$login=$_POST['login'];
$password=$_POST['password'];
$param_user[userid]=$login;
$param_user[pass]=$password;
// посылаем запрос на страницу авторизации
function SendData($url , $params = null){
$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ref='http://my.ebay.de/ws/eBayISAPI.dll?MyEbayBeta&MyEbay=&gbh=1&guest=1';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_HEADER, 1); // заменить на 0
if($params){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__). DIRECTORY_SEPARATOR . 'cook.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__). DIRECTORY_SEPARATOR . 'cook.txt');
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
$result=curl_exec($ch);
curl_close ($ch);
return $result;
}
// посылаем запрос -> получаем html-страницу
$url_ebay='https://signin.ebay.com/ws/eBayISAPI.dll?SignIn';
$content = SendData($url_ebay);
// вот что получили:
//var_dump($content);
// вырезаем из html-страницы name и value у hidden-полей
if ($forms=preg_split('/<form.+/U', $content)){
if (preg_match_all('/<input.+>/U', $forms[1], $matches, PREG_PATTERN_ORDER)) {
$inputs = $matches[0];
foreach ($inputs as $input) {
if (preg_match_all('/(value|type|name)="(.*?)"/', $input, $matches, PREG_PATTERN_ORDER)) {
$attribs = array_combine($matches[1], $matches[2]);
if (isset($attribs['type']) && $attribs['type'] == 'hidden') {
//echo $attribs['name'] . ' = ' . $attribs['value']?><br/><?php
$param_ebay[$attribs['name']]=$attribs['value'];
}
}
}
}
}
$param_ebay_for_get=array_merge($param_ebay, $param_user);
//var_dump($param_ebay_for_get);
// клеим урл
echo http_build_query($param_ebay_for_get);
// посылаем запрос на страницу авторизации
$signin=SendData($url_ebay, $param_ebay_for_get);
var_dump($signin);
А в итоге получаем:
HTTP/1.1 100
Continue HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: ebay=%5Ecv%3D15555%5Esbf%3D%23%5E;
Domain=.ebay.com;
Path=/ Set-Cookie: dp1=bu1p/QEBfX0BAX19AQA**4ddcadb3^pbf/%2344ddcadb3^;
Domain=.ebay.com;
Expires=Thu, 24-May-2012 07:20:19 GMT;
Path=/ Set-Cookie: s=BAQAAASi4KMI9AAWAAPgAIEv8y7NjYTAzY2ZiNjEyODBhMDI2NjI3MmY2ODJmZmQ5MGI2MAASAApL/MuzdGVzdENvb2tpZRzZTkBMCmAF3mYC+dbpTpdZiGZM;
Domain=.ebay.com;
Path=/ Set-Cookie: nonsession=CgADKACBVYXuzY2EwM2NmYjYxMjgwYTAyNjYyNzJmNjgyZmZkOTBiNjAAywACS/uBOzE20DPYtw**;
Domain=.ebay.com;
Expires=Wed, 25-May-2011 07:20:19 GMT;
Path=/ Cache-Control: private
Pragma: no-cache
Content-Type: text/html;
charset=UTF-8
Content-Length: 17483
Date: Tue, 25 May 2010 07:20:18 GMT
И страницу авторизации с незаполненной формой.
Подскажите, пожалуйста, что я не так делаю, где искать ошибку, что ещё попробовать чтобы этот код таки работал?
Заранее большое спасибо за внимание и ваши умные мысли.