0

はい、はい、ユーザーとパスワードを知っています。

通常のウェブサイトのように、ウェブサイトにログインしていくつかの画像/コンテンツを取得するには、php にいくつかのトリックが必要です。

明らかに、curl o file_get_contents では、認証されていないため機能しません。

どうすればいいですか?

認証は、POST による通常の HTTP 認証です。

編集:それが機能するのを助けてくれてありがとう!

今後の参考のために、ここに作業コードを投稿します

//login and set cookie
$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");
curl_setopt($curl, CURLOPT_COOKIEJAR, "cookiefile"); # SAME cookiefile
curl_setopt($curl, CURLOPT_URL, "url in which there is the login form"); 
curl_setopt($curl, CURLOPT_POSTFIELDS, "user=test&password=test&someparam=somevalue"); //put here the post/get values
$output = curl_exec($curl);

echo $output;

//finally fetch my content
curl_setopt($curl, CURLOPT_URL, $url_to_fetch); 
$output = curl_exec($curl);
echo $output;

curl_close ($curl);
4

2 に答える 2

1

ブラウザーを使用して自分自身を認証し、Cookie をエクスポートして、curl 経由で使用します。セッションが続くまで、ユーザーを偽装する必要があります。

急いでいるため、今すぐコードを提供することはできませんが、この手順が役立つと思います

CURLOPT_COOKIEFILE オプションを使用して、Cookie を保存したファイルを指定できます。

PHPマニュアルに記載されているように:

The name of the file containing the cookie data. 
The cookie file can be in Netscape format, or just 
plain HTTP-style headers dumped into a file. 
于 2010-05-20T15:38:39.647 に答える
1

curl で認証できます。Curl では、POST 変数をログインに送信したり、基本的な HTTP 認証を行うことができます。

于 2010-05-20T15:40:44.603 に答える