PHPでパスワード認証がある外部サイトに自動でログインしたい
PHP超初心者です。
標記のとおりなのですが、パスワード認証がついた外部サイトにアクセスし、ログイン後の画面をechoさせるプログラムを作ろうとしております。
file_get_contentsを使って、次のようにPOSTリクエストを送っているのですが、何度試みても、echoの結果がログイン前の画面になってしまい(おそらく、ログインの失敗によるリダイレクトかと思われますが、リクエスト対象が外部サイトなので、受信サーバ側の正確な処理は不明です)、うまくログインできません。
実行環境はローカルのApacheです。
<?php
$data = array(
"ユーザーIDのname属性" => "ユーザーID",
"パスワードのname属性" => "パスワード"
);
$data = http_build_query($data, "", "&");
//header
$header = array(
"Content-Type: application/x-www-form-urlencoded",
"Content-Length: ".strlen($data),
"User-Agent: ユーザーエージェントの指定"
);
$context = array(
"http" => array(
"method" => "POST",
"header" => implode("\r\n", $header),
"content" => $data
)
);
$url = "認証用ファイルが置いてある外部サイトのURL";
echo file_get_contents($url, false, stream_context_create($context));
?>
尚、PHPを使わず、HTMLのFormタグとJavascriptの組み合わせ(Formタグに予めPOSTデータを仕込んでおき、Javascriptに自動でSubmitさせる方法)であればうまくいきますが、今回は、PHPで実装することを目標としています。
ブラウザからのリクエストと、サーバからのリクエストで、HTTPリクエストヘッダが違うことが原因かとも思ったのですが、自己解決できず、質問させていただくに至りました。
そもそも、この方法(file_get_contentsを用いたPOSTリクエスト)で外部サイトの認証は突破できますでしょうか?
お詳しい方のご意見をお待ちしております。