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リクエスト)で外部サイトの認証は突破できますでしょうか?

お詳しい方のご意見をお待ちしております。