3

PHP を使用して Web ページを開き、その Cookie を受け取るにはどうすればよいですか?

動機: RSS 非対応の HighLearn Web サイト (リモート学習 Web サイト) から RSS フィードを作成するために、feed43を使用しようとしています。解析する必要があるフィード コンテンツを含む Web ページを見つけましたが、最初にログインする必要があります。幸いなことに、ログインは GET リクエストを介して実行できるため、たとえば" http://highlearn.website/login_page.asp?userID=foo&password=bar " を fopen() するだけで簡単にログインできます。しかし、ログイン時に生成された Cookie を取得し、その Cookie を実際のクライアントに渡し (おそらく setcookie() を使用して)、リダイレクトする必要があります。

4

3 に答える 3

5

サーバー側の HTTP クライアントの場合は、cURLモジュールを使用する必要があります。これにより、複数のリクエスト間で Cookie を永続化できます。また、リクエストのバンドル (curl_multi) やリダイレクトの透過的な処理など、いくつかの優れた処理も行います。

ユーザーにセッションを返すことになると、これは不可能だと思います。他のドメインの Cookie を上書きできる必要があります。これは重大なセキュリティ上の問題を引き起こすため、ブラウザはそれを実装しません。

于 2008-11-18T08:43:41.137 に答える
1

以前、この種のスクリーン スクレイピングに SimpletestのScriptable Browserコンポーネントを使用したことがあります。ブラウザをシミュレートするのにかなり良い仕事をします。

セッションを実際のクライアントに渡す必要はありません (サイトのセキュリティ レベルによっては可能かもしれませんが) - PHP スクリプトをターゲット サイトとエンド ユーザーの間のプロキシにすることができます。 .

于 2008-11-18T09:23:13.023 に答える
0

残念ながら、これはWebサイトが同じドメインにない限り不可能です。Cookieは、元のドメインでのみ有効です。また、サブドメインは異なるドメインとしてカウントされます。それ以外の場合は(私はあまりphpを使用していないことに注意してください)、応答からヘッダーを引き出し、Cookieをクライアントにコピーすることができます。

于 2008-11-18T06:13:13.220 に答える