0

cURL (PHP を使用) に問題があります。基本的に、Web サイトにログインしていくつかの機能を実行したいと考えています。通常はこれで問題ありませんが、Web サイトは、ログイン ページにアクセスするたびにログイン ページ用の一意の URL と動的/一意の POST URL を生成し、そのセッション中に使用する必要があります。

したがって、現在、ログインページに移動し、ページをスクレイピングして一意の POST URL を取得し (成功しています)、POST リクエストを作成して、それを一意の URL にディスパッチしています。しかし、それは機能していません。問題は、Cookie に関係しているか、セッションを開いたままにしていないことにあると思います...

まず、Cookie が保存されていない理由がわかりません (ただし、Cookie はそのブラウザー セッションにのみ使用されますが、それが原因である可能性があります)。Cookie を保存するテスト ページを作成しました。だから多分それは私の問題ではありません。

第二に、セッションを開いたままにしているとは思いません。私は電話しています:

$curl = curl_init();次に、一意の POST URL を取得$ch = curl_init($loginPostUrl);し、POST リクエストを初期化するために呼び出し、最後にすべてが完了した後

curl_close($ch);
curl_close($curl);

ただし、投稿リクエストを作成している間、これが最初のセッションを開いたままにしているわけではないと思います(したがって、取得したPOST URLは無効です..)

誰かが同じセッションでこれらのリクエストを行う方法を説明してもらえますか?

申し訳ありませんが、私の説明は不十分です。人々が理解できない場合は、明確にするよう努めます。

どうもありがとう :)

4

1 に答える 1

3

cURL を使用してページにアクセスする場合、Cookie はブラウザーに保存されません。これは正常です。スクリプトはサーバー側でリクエストを実行しており、これはブラウザが Cookie を処理する方法とは関係ありません。

目的を達成するために、cURL の機能を使用して、後で要求と共に送信できるファイルに Cookie を保存できます。このファイルを作成または使用するには、次のようにしますcurl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar);($cookieJarは、Cookie を保存するファイルのパスです)。

リクエストとともに Cookie を送信するには、次のようにします。

curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar);

これがあなたの質問に答えたことを願っています。

于 2012-05-26T12:08:58.863 に答える