保護する必要のあるファイルを含むディレクトリがあります。保護は、標準の HTTP 基本認証 (.htaccess、.htpasswd など) によって行われます。以下のコードを使用すると、保護されたページのコンテンツを取得できますが、他には何もありません (「セッション/ログイン」はすぐに期限切れになります)。そのページにアクセスしてファイルをダウンロードする必要があります。保護された領域にログインし、php (または javascript/ajax) を使用してそのページにとどまるにはどうすればよいですか?
<?php
// HTTP authentication
$url = "http://localhost/protected_files/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "login:password");
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
jQuery ajaxを使用して同じ:
var username = $("input#username").val();
var password = $("input#password").val();
function make_base_auth(user, password) {
var hash = btoa(user + ':' + password);
return "Basic " + hash;
}
$.ajax
({
type: "GET",
url: "http://localhost/protected_files/",
headers: {
'Authorization' : make_base_auth(username, password)
},
success: function (data){
$('body').html(data);
}
});