HTTP 401 ခွင့်ပြုချက်မရှိဘဲအမှားဆိုသည်မှာဆာဗာသည်အရင်းအမြစ်ကိုရယူရန်အသုံးပြုသူ authentication လိုအပ်သည်ဟုဆိုလိုသည်။ အသုံးပြုသူသည်ကာကွယ်ထားသောအကြောင်းအရာများကိုကြည့်ရှုရန်ကြိုးစားသည့်အခါဤအမှားမက်ဆေ့ခ်ျကိုပြန်ပို့ပြီးစစ်မှန်ကြောင်းအတည်ပြုရန်ပျက်ကွက်သောအခါ။ ဤဆောင်းပါးသည် PHP ရှိအမှားအယွင်းများ 401 ခု၏ဘုံအကြောင်းများကိုအကျဉ်းချုံးဖော်ပြပြီးသက်ဆိုင်ရာဖြေရှင်းနည်းများပေးလိမ့်မည်။
အကယ်. ဆာဗာသည် authentication ကိုမသတ်မှတ်ထားပါကအသုံးပြုသူများသည်အကာအကွယ်ပေးထားသောအရင်းအမြစ်များကိုရယူနိုင်မည်မဟုတ်ပါ။
authentication အမျိုးအစားကို PHP ၏ header () function ကို အသုံးပြု. သတ်မှတ်နိုင်သည်။
header('WWW-Authenticate: Basic realm="My Realm"');အသုံးပြုသူမှအသုံးပြုသူမှပေးသောအသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်သည်ဆာဗာတွင်သိမ်းဆည်းထားသောသတင်းအချက်အလက်နှင့်မကိုက်ညီပါက 0 င်ရောက်မှုကျရှုံးလိမ့်မည်။
အသုံးပြုသူမှပေးသောအထောက်အထားများသည်၎င်းတို့၏စကားဝှက်ကိုပြန်လည်သတ်မှတ်ရန်အသုံးပြုသူအားမှန်ကန်ကြောင်းစစ်ဆေးပါ။
အသုံးပြုသူသည်အကာအကွယ်ပေးထားသောဖိုင်ကို 0 င်ရောက်ရန်ခွင့်ပြုချက်မရှိပါကအမှားအယွင်းများသည်အမှားအယွင်းများရှိသည်။
ဖိုင်ခွင့်ပြုချက်များကိုမှန်ကန်စွာသတ်မှတ်ထားပြီးအသုံးပြုသူများသည်သင့်လျော်သောလက်လှမ်းမီမှုအခွင့်အရေးများရှိသည်ဟုစစ်ဆေးပါ။
Apache server တွင် .Htaccess ဖိုင်ကို authentication ကို configure လုပ်ရန်အသုံးပြုသည်။ ဤဖိုင်သည်လမ်းညွှန်မှပျောက်ဆုံးနေပါကဆာဗာသည် authentication ကိုမလုပ်ဆောင်နိုင်ပါ။
ကာကွယ်ထားသောလမ်းညွှန်တွင် .htaccess ဖိုင်တစ်ခု ဖန်တီး. စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်း configuration ကိုထည့်ပါ။
AuthType Basic
AuthName "My Realm"
AuthUserFile /path/to/auth-file
Require valid-userမသင့်လျော်သောဆာဗာ configuration သို့မဟုတ်နည်းပညာဆိုင်ရာပြ issues နာများသည် HTTP 401 အမှားများကိုဖြစ်စေနိုင်သည်။
သက်ဆိုင်ရာအမှားအယွင်းများအတွက်ဆာဗာမှတ်တမ်းများနှင့်လိုအပ်ပါကနည်းပညာပံ့ပိုးမှုဆက်သွယ်ရန်ဆက်သွယ်ပါ။
စကားဝှက်ဖြင့်ကာကွယ်ထားသောဖိုင် လျှို့ဝှက်ချက် ပါ 0 င်သောကာကွယ်ထားသောဖိုင် တွဲ တစ်ခုရှိသည်ဆိုပါစို့။ အောက်ပါ PHP ကုဒ်ကို အသုံးပြု. စစ်မှန်ကြောင်းအတည်ပြုနိုင်သည်။
<!--?php
// အခြေခံ authentication ကို set up
header('WWW-Authenticate: Basic realm="My Realm"');
// အထောက်အထားများကိုစစ်ဆေးပါ
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
// အသုံးပြုသူနှင့်စကားဝှက်ကိုဖိုင်မှဖတ်ပါ
$users = file("users");
$authenticated = false;
foreach ($users as $line) {
list($username, $password) = explode(":", trim($line));
// ထောက်ပံ့ပေးထားသောအထောက်အထားများကိုဖိုင်ရှိသူတို့နှင့်နှိုင်းယှဉ်သည်
if ($_SERVER['PHP_AUTH_USER'] == $username && $_SERVER['PHP_AUTH_PW'] == $password) {
$authenticated = true;
break;
}
}
// အသုံးပြုသူစစ်မှန်ကြောင်းအတည်ပြုလျှင်,ထို့နောက်ဝင်ရောက်ခွင့်ပြုပါ
if ($authenticated) {
fopen("private/secret.txt", "r");
} else {
// အတည်မပြုရသေးဘူး,အမှားပြန်လာ
header('HTTP/1.0 401 Unauthorized');
echo 'Authentication failed.';
}
} else {
// အထောက်အထားများမရရှိနိုင်ပါ,authentication ကိုလိုအပ်သည်
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
}
?-->အထက်ဖော်ပြပါဖွဲ့စည်းမှုမှတစ်ဆင့်ကာကွယ်ထားသောအရင်းအမြစ်များကိုရယူသုံးစွဲနိုင်သောအရင်းအမြစ်များကို HTTP 401 ခွင့်ပြုချက်မရှိဘဲအမှားအယွင်းများကိုရှောင်ရှားရန် PHP တွင်ထိရောက်စွာစီမံနိုင်သည်။