ホームページ  >  記事  >  バックエンド開発  >  Curl を使用して SSL と Cookie を使用して Web サイトにログインするにはどうすればよいですか?

Curl を使用して SSL と Cookie を使用して Web サイトにログインするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-10 01:46:03335ブラウズ

How to Log In to Websites with SSL and Cookies Using Curl?

SSL と Cookie を使用して Curl でログインする方法

問題:

ログインCurl を使用する Web サイト、特に barnesandnoble.com は成功しません。ページはエラーなしで返されますが、電子メール フィールドには最初に入力した電子メールが入力されます。ログイン URL を HTTPS 以外の Web サイト (eBay など) に変更すると、ログインに成功します。

原因:

考えられる原因:

  • ASP/ASPX Web サイトと Curl で使用されるアプローチの間での Cookie と _state の処理の違い
  • 投稿文字列内の電子メールとパスワードの URL エンコードされた URL パラメーターの欠如
  • 「x」の不適切な処理" ログイン URL の値

解決策:

次のコードはこれらの問題に対処し、Curl、SSL、Cookie を使用してログインが成功する例を示します。

</p>
<p>//...<br>// 簡潔にするために以前のcurlオプションは省略<br>//...</p>
<p>// フォームフィールドを取得<br>$fields = getFormFields($content);</p>
<p>// メールアドレスとパスワードを設定します<br>$fields['emailAddress'] = $EMAIL;<br>$fields['acctPassword'] = $PASSWORD; </p>
<p>// x 値を取得します<br>if (preg_match('/op.asp?x=(d )/i', $content, $match)) {</p>
<p> }</p>
<p>// x の値でログイン URL を設定します<br>$LOGINURL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?x=$x";</p>
<p> // POST フィールドを設定します<br>$POSTFIELDS = http_build_query($fields);</p>
<p>// URL をログイン URL に変更します<br>curl_setopt($ch, CURLOPT_URL, $LOGINURL);</p>
<p> // 投稿オプションを設定します<br>curl_setopt($ch, CURLOPT_POST, 1);<br>curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS);</p>
<p>// ログインを実行します<br>$result =curl_exec( $ch);  </p>
<p>print $result;</p>
<p>//...<br>

説明:

  • getFormFields(): ログイン フォームから非表示の入力を抽出します。
  • 電子メールとパスワードの設定: 適切な電子メールとパスワードの値を設定します。
  • Get x value: 正しいログイン URL で使用するために、ログイン URL から「x」値を取得します。
  • x 値を使用してログイン URL を設定:取得した「x」値を使用して正しいログイン URL を使用します。
  • POST フィールドを設定: フォーム フィールドを POST のクエリ文字列に変換します。
  • URL を次のように変更します。ログイン URL と投稿オプションの設定: ログイン リクエストの Curl ハンドルを構成します。
  • ログインの実行: ログイン リクエストを実行します。

を実装することによりこれらの変更により、HTTPS の使用や Cookie 処理の潜在的な違いにもかかわらず、Curl は正常にログインできます。

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

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