Написал функцию для входа на амазон (нужно для некоторых действий авторизовываться)
function amazon_authorization($email,$password){
$cookie_file='/var/www/html/cookies/'.md5(date("Y-m-d H:i:s")).'.txt';
$fp=fopen($cookie_file,'w'); fclose($fp);
$url='https://www.amazon.co.uk/ap/signin?_encoding=UTF8';
$url.='&ignoreAuthState=1';
$url.='&openid.assoc_handle=gbflex';
$url.='&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select';
$url.='&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select';
$url.='&openid.mode=checkid_setup';
$url.='&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0';
$url.='&openid.pape.max_auth_age=0';
$url.='&openid.return_to=https%3A%2F%2Fwww.amazon.co.uk%2F%3Fref_%3Dnav_signin';
$url.='&switch_account=';
# заходим на страницу авторизации
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0');
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
$content=curl_exec($ch);
# Получение скрытых полей
$url_referer=$url;
if(!preg_match('/<form name="signIn".*?<\/form>/is',$content,$form)) die('Failed to find log in form!');
$form=$form[0];
if(!preg_match('/action=(?:\'|")?([^\s\'">]+)/i',$form,$act)) die('Failed to find login form url');
$url=$act[1];
$c=preg_match_all('/<input type="hidden"\s*name="([^"]*)"\s*value="([^"]*)"/i',$form,$hiddenFields);
$postFields=array();
for($i=0; $i<$c; ++$i){ $postFields[$hiddenFields[1][$i]] = $hiddenFields[2][$i]; }
# добавление своего пароля и логина
$postFields['email']=$email;
$postFields['password']=$password;
$post='';
foreach($postFields as $key=>$value){ $post.=$key.'='.urlencode($value).'&'; }
$post=substr($post,0,-1);
# авторизация
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_REFERER,$url_referer);
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
$content=curl_exec($ch);
curl_close($ch);
echo $content;
unlink($cookie_file);
return true;
}
Итог - выдает капчу
Important Message!
To better protect your account, please re-enter your password and then enter the characters as they are shown in the image below.
Проверил, все скрытые поля совпадают, вроде все правильно, но всегда капча...
Подскажите что я не так могу делать?