他のドメインからいくつかのフィールドの値を取得しようとしています。 他のドメインサイトにログインページがあります。私はブラウザで正常にログインし、file_get_contents()関数を呼び出していますが、それでも私はログインページのHTMLを返しています。CURLログインに成功しましたログインページに再度リダイレクト
URLに渡しているページのHTMLが欲しいです。ここで
は私のコードでは、ログイン
curl_setopt($ch, CURLOPT_URL, 'https://www.mydomain.lcl/dashboard');
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
$result = curl_exec($ch);
後の2番目のリクエストは、誰もがplzのログインページをバイパスし、ページのHTMLにアクセスする方法を私はお勧めでき
$COOKIEFILE = dirname(__FILE__) . '/cookie.txt';
$formFields['username'] = 'XXXXXX';
$formFields['password'] = 'XXXXXX';
$ch = curl_init();
// set some options on the handle
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $COOKIEFILE);
curl_setopt($ch, CURLOPT_COOKIEFILE, $COOKIEFILE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_URL, 'https://www.mydomain.lcl/login');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($formFields));
$data = curl_exec($ch);
クッキーファイルを追加した後です。
サーバー上の 'file_get_contents()'は、ブラウザのログイン/セッションとは完全に無関係です。サーバー上でcURLを使用してリモートサーバーにログインし、そのページをログインしているユーザーとして取得する必要があります。 – jeroen