一部の Web サイトでは Cookie を設定するために異なるドメイン名が使用されるため、CURL では一部の Cookie が失われるようです。たとえば、CURL が Web サイト www.xxx.com のホームページにアクセスすると、ホームページ上でユーザー名を入力して確認した後、すぐに xxx.com に属する COOKIE が設定され、www.xxx に移動します。このとき、www.xxx.com に属する COOKIE が設定されます。これら 2 つの Cookie を正常に取得するにはどうすればよいですか?
ディスカッションへの返信(解決策)
CURLOPT_COOKIE
HTTPリクエストの「Set-Cookie:」部分の内容を設定します。
CURLOPT_COOKIEFILE
Cookie 情報を含むファイルの名前は、Netscape 形式または HTTP 形式のヘッダー情報です。
CURLOPT_COOKIEJAR
接続が閉じられた後にCookie情報を保存するファイルの名前
CURLOPT_COOKIE
HTTPリクエストの「Set-Cookie:」部分の内容を設定します。
CURLOPT_COOKIEFILE
Cookie 情報を含むファイルの名前は、Netscape 形式または HTTP 形式のヘッダー情報です。
CURLOPT_COOKIEJAR
接続が閉じられた後に Cookie 情報を保存するファイルの名前
ご返信ありがとうございます
ホームページにアクセスすると、ホームページは xxx.com に属する COOKIE を生成します CURL はこの COOKIE を取得できません。 :
$ch =curl_init( );
curl_setopt($ch, CURLOPT_URL, 'http://www.xxx.com');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
cur l_setopt($ch , CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); _閉じる($ch);
ユーザーを入力します。 名前が決定された後、2 番目のページに移動すると、CURL はこの COOKIE を正常に取得できます:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.xxx.com/next.php');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); ;
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
curl_setopt ($ch, CURLOPT_HEA DER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
curl_close($ch);
CURL が http://www. xxx.com、www.xxx.com では、xxx.com に属するファイルが生成されます。COOKIES についてはどうですか? CURL が COOKIE を取得できないのはこれが原因でしょうか?
特定の状況を詳細に分析する必要があるため、実際の URL を提供した方がよいです
特定の状況を詳細に分析する必要があるため、実際の URL を提供した方が良いです
解決されました、それJSによって設定されていることがわかりました、ありがとう。もう 1 つの質問があります。curl_exec() の直後にcurl_close() を実行し、curl_exec() の後にcurl_close() を実行する前に 5 分間停止します。curl された Web サイトの違いは何ですか?
違いはありません
違いはありません
ありがとうございます
こんにちは、ホスト!私もあなたと同じ問題に遭遇したようです。CURL ライブラリを使用しているときに、リクエスト内の Cookie の一部が欠落しているようです。どうやって解決しましたか?