-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 です。

表示されるメッセージ: Web ブラウザーの設定が 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 リクエストを実行することは、ブラウザとは関係がないということです。アクセスしている Web サイトは、php スクリプトの実行に使用するブラウザーを気にしません。実際のリクエストは、ブラウザではなくサーバーによって行われます。

一方、eBay のエンジニアが賢明であれば、これをブロックするでしょう。おそらく、このようなことを行うべきではありません。それがEbay API の目的です。

そして、ちょっとしたヒントとして、HTTP クライアント ライブラリを使用します。プレーンな cURL でこのようなことを行うのはピタで、非常に悪いコードや判読できないコードが得られます。

たとえば、https://github.com/guzzle/guzzleを確認してください。

于 2012-07-09T08:00:32.020 に答える