[英]PHP cURL cookies blocking
<?php
$ebay_user_id = "id"; // Please set your Ebay ID
$ebay_user_password = "password"; // Please set your Ebay Password
$cookie_file_path = dirname(__FILE__).'/cookie.txt'; // Please set your Cookie File path
$LOGINURL = "http://signin.ebay.com/aw-cgi/eBayISAPI.dll?SignIn";
$agent = "Mozilla/4.0 (compatible;)";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$LOGINURL);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
$result = curl_exec ($ch);
curl_close ($ch);
$LOGINURL = "http://signin.ebay.com/aw-cgi/eBayISAPI.dll";
$POSTFIELDS = 'MfcISAPICommand=SignInWelcome&siteid=0&co_partnerId=2&UsingSSL=0&ru=&pp=&pa1=&pa2=&pa3=&i1=-1&pageType=-1&userid='. $ebay_user_id .'&pass='. $ebay_user_password;
$reffer = "http://signin.ebay.com/aw-cgi/eBayISAPI.dll?SignIn";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$LOGINURL);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$POSTFIELDS);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $reffer);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
$result = curl_exec ($ch);
curl_close ($ch);
print $result; ?>
我真的是cURL的新手...
我现在有此代码用于登录ebay。
目前的问题是它告诉我的Cookie被某种东西挡住了。
它显示的消息:您的Web浏览器设置阻止了cookie。
我使用firefox进行测试,并尝试其他浏览器也遇到相同的问题。
我已经确认我的浏览器设置可以接受Cookie访问。
另外,我检查了cookies.txt文件中是否包含内容,因此可以正确访问cookies.txt。
所以....这个问题出了什么问题? 我使用的代码正确吗? 谢谢大家的帮助。
尝试将代理修改为类似的内容;
'Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1'
编辑:实际上,我认为问题是您需要先查询登录页面,然后首先访问“ http://signin.ebay.com/aw-cgi/eBayISAPI.dll?SignIn ”,这将设置cookie,然后以你有。
您可以在浏览器中进行尝试,导航到eBay登录页面,清除cookie,然后登录。 您将得到浏览器不支持cookie错误。
您需要了解一些知识,那就是通过php通过curl进行HTTP请求与您的浏览器无关。 您访问的网站并不关心您使用哪个浏览器来运行php脚本。 实际的请求是由您的服务器而不是浏览器完成的。
另一方面,如果eBay工程师很聪明,他们会阻止此操作,那么您可能应该这样做,这就是Ebay API的目的。
还有一点提示,请使用HTTP客户端库,在纯cURL中执行此类操作是一个皮塔饼,并且会给出一些非常糟糕且无法读取的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.