ホームページ >バックエンド開発 >PHPチュートリアル >Curl、Cookie、および SSL を使用して Barnes & Noble のモバイル Web サイトにログインするにはどうすればよいですか?

Curl、Cookie、および SSL を使用して Barnes & Noble のモバイル Web サイトにログインするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 03:32:03249ブラウズ

How to Log into Barnes & Noble's Mobile Website Using Curl, Cookies, and SSL?

Curl を使用した SSL、Cookie、および POST でのログイン

背景

この問い合わせは、Curl を使用した Barnes & Noble のモバイル Web サイトへのログインに焦点を当てています。 SSL の使用により問題が発生し、

解決策

問題を解決するには、次の調整を検討してください:

  1. URL エンコード: URL パラメーターをエンコードします (例:メールアドレスとパスワード) を POST リクエストに含めます。
  2. X 値包含: ログイン URL に x 値を含めます (最初のページから抽出されたとおり)。

作業例

次のコードは、これらの調整を作業例に組み込みます。

// Constants
$EMAIL = '[email protected]';
$PASSWORD = 'yourpassword';
$COOKIE_FILE = "/tmp/cookies.txt";
$LOGIN_URL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?stage=signIn";
$AGENT = "Nokia-Communicator-WWW-Browser/2.0 (Geos 3.0 Nokia-9000i)";

// Curl Initialization
$ch = curl_init();

// Basic Headers
$headers = ["Accept: */*", "Connection: Keep-Alive"];

// Curl Options
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
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);
curl_setopt($ch, CURLOPT_COOKIEJAR, $COOKIE_FILE);

// Step 1: Initialize with Login URL
curl_setopt($ch, CURLOPT_URL, $LOGIN_URL);
curl_exec($ch);

// Step 2: Extract Form Fields
$content = curl_getinfo($ch);
$fields = getFormFields($content);

// Populate Form Fields
$fields['emailAddress'] = $EMAIL;
$fields['acctPassword'] = $PASSWORD;

// Extract X Value
$loginUrl = "https://cart2.barnesandnoble.com/mobileacct/op.asp?x={$x}";

// Construct POST Fields
$postFields = http_build_query($fields);

// Update Login URL and POST Options
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);

// Perform Login and Retrieve Result
$result = curl_exec($ch);
print $result;

外部リソース

Curl の使用に関するさらなる支援については、以下の追加リソースを検討してください。リソース:

  • [curl を使用して Android マーケットの mylibrary を取得](https://stackoverflow.com/questions/4940264/retrieve-android-market-mylibrary-with-curl)
  • 【複数のアクションでcurl](https://stackoverflow.com/questions/6032527/multiple-actions-with-curl)
  • [curl 経由での XML とヘッダーの送信](https://stackoverflow.com/questions/2149671/ send-xml-and-headers-via-curl)
  • [PHP と Curl を使用して Google にログインし、 Cookie がオフになっていますか?](https://stackoverflow.com/questions/1794383/login-to-google-with-php-and-curl-cookie-turned-off)
  • [PHP での Pinterest ログインとcURL ではありませんworking](https://stackoverflow.com/questions/13597892/pinterest-login-with-php-and-curl-not-working)

以上がCurl、Cookie、および SSL を使用して Barnes & Noble のモバイル Web サイトにログインするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。