私はAJAX + PHP + .htaccessを使用してアップロードスクリプトをパスワードで保護しようとしています。AJAXと.htaccessを使用してパスワードの入力を求める方法
私のテストウェブサイトはhttp://scrabble.stats.org.pl/test/gcg/です。ドロップダウンリストから1つのオプションを選択すると、テーブルが表示されます。次に、右端の列に「Dodaj」(「追加」)ボタンが表示されます。彼らの「変更」イベントがline #25でAJAX(以下、最小限のバージョン)で処理されます
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
$('.upload').on('change', function(event) {
var file_data = $(event.target).prop('files')[0];
//console.log(file_data);
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
url: 'upload.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(php_script_response){
var response = $.parseJSON(php_script_response);
if (response.status == 'error') {
alert(response.errormsg);
}
else {
$(event.target).closest('.fileUpload').hide();
}
}
});
});
}
};
upload.php
はhereを見つけることができます。アップロードされたファイルの内容をデータベースに保存するだけです。 success
またはerror
の状態で$response_array
を返します。
さて、私は.htaccessファイルで私のサーバー上のフォルダを保護する方法を知っているし、それが正常に動作します(http://scrabble.stats.org.pl/test/gcg/uplをチェックアウト):、
AuthType Basic
AuthUserFile "/usr/auth.passwd"
require valid-user
AuthName "Protected site"
だけupload.php
を保護することが可能なようにユーザーが「追加」ボタンをクリックしたときにウェブサイトからパスワードが要求されますか?
私はthis、thisとthisを発見し、それらの解決策を試してみましたが、彼らは動作していないようです。通常、私はクロームコンソールでこのエラーを取得しています:
http://scrabble.stats.org.pl/test/gcg/upload/upload.php
Failed to load resource: the server responded with a status of 405 (Not
Allowed)
私は上記の解決方法を理解していない可能性があります怖いです。まず、btoa(username + ":" + password)
の部分についてはわかりません。それらの特別なキーワードですか、私はユーザーを公開することになっていますか?これらのアプローチをパスしますか?