-1
<?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。

它显示的消息:您的网络浏览器设置正在阻止 cookie。

我使用firefox进行测试并尝试了其他浏览器也遇到了同样的问题。

我已确认我的浏览器设置已接受 cookie 访问。

另外,我检查了 cookies.txt 文件中有内容,这意味着 cookies.txt 可以正确访问。

所以....这个问题有什么问题?我使用的代码是否正确?感谢大家的帮助。

4

2 回答 2

3

尝试将代理修改为类似的东西;

'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 错误。

于 2012-12-05T01:34:27.653 回答
0

您需要了解一些事情,那就是通过 php 使用 curl 进行 HTTP 请求与您的浏览器无关。您访问的网站并不关心您使用什么浏览器来运行 php 脚本。实际请求是由您的服务器完成的,而不是由您的浏览器完成的。

另一方面,如果 eBay 工程师很聪明,他们会阻止这个,你可能应该做这样的事情,这就是Ebay API 的用途。

还有一个小技巧,使用 HTTP 客户端库,在纯 cURL 中做这样的事情是一个皮塔饼,并给出了一些非常糟糕和不可读的代码。

例如,检查https://github.com/guzzle/guzzle 。

于 2012-07-09T08:00:32.020 回答