လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> php http http http 401 ခွင့်ပြုချက်မရှိသောအမှားများနှင့်ဖြေရှင်းနည်းများကိုအသေးစိတ်ရှင်းပြချက်

php http http http 401 ခွင့်ပြုချက်မရှိသောအမှားများနှင့်ဖြေရှင်းနည်းများကိုအသေးစိတ်ရှင်းပြချက်

M66 2025-11-02

php http 401 ခွင့်ပြုချက်မရှိသောအမှားခြုံငုံသုံးသပ်ချက်

HTTP 401 ခွင့်ပြုချက်မရှိဘဲအမှားဆိုသည်မှာဆာဗာသည်အရင်းအမြစ်ကိုရယူရန်အသုံးပြုသူ authentication လိုအပ်သည်ဟုဆိုလိုသည်။ အသုံးပြုသူသည်ကာကွယ်ထားသောအကြောင်းအရာများကိုကြည့်ရှုရန်ကြိုးစားသည့်အခါဤအမှားမက်ဆေ့ခ်ျကိုပြန်ပို့ပြီးစစ်မှန်ကြောင်းအတည်ပြုရန်ပျက်ကွက်သောအခါ။ ဤဆောင်းပါးသည် PHP ရှိအမှားအယွင်းများ 401 ခု၏ဘုံအကြောင်းများကိုအကျဉ်းချုံးဖော်ပြပြီးသက်ဆိုင်ရာဖြေရှင်းနည်းများပေးလိမ့်မည်။

စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်းကိုမထားဘူး

အကယ်. ဆာဗာသည် authentication ကိုမသတ်မှတ်ထားပါကအသုံးပြုသူများသည်အကာအကွယ်ပေးထားသောအရင်းအမြစ်များကိုရယူနိုင်မည်မဟုတ်ပါ။

အဖေြ

authentication အမျိုးအစားကို PHP ၏ header () function ကို အသုံးပြု. သတ်မှတ်နိုင်သည်။

 header('WWW-Authenticate: Basic realm="My Realm"');

မမှန်ကန်သောအထောက်အထားများ

အသုံးပြုသူမှအသုံးပြုသူမှပေးသောအသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်သည်ဆာဗာတွင်သိမ်းဆည်းထားသောသတင်းအချက်အလက်နှင့်မကိုက်ညီပါက 0 င်ရောက်မှုကျရှုံးလိမ့်မည်။

အဖေြ

အသုံးပြုသူမှပေးသောအထောက်အထားများသည်၎င်းတို့၏စကားဝှက်ကိုပြန်လည်သတ်မှတ်ရန်အသုံးပြုသူအားမှန်ကန်ကြောင်းစစ်ဆေးပါ။

အကာအကွယ်ပေးထားသောဖိုင်များသည်လက်လှမ်းမမှီနိုင်ပါ

အသုံးပြုသူသည်အကာအကွယ်ပေးထားသောဖိုင်ကို 0 င်ရောက်ရန်ခွင့်ပြုချက်မရှိပါကအမှားအယွင်းများသည်အမှားအယွင်းများရှိသည်။

အဖေြ

ဖိုင်ခွင့်ပြုချက်များကိုမှန်ကန်စွာသတ်မှတ်ထားပြီးအသုံးပြုသူများသည်သင့်လျော်သောလက်လှမ်းမီမှုအခွင့်အရေးများရှိသည်ဟုစစ်ဆေးပါ။

ပျောက်ဆုံးနေသော .Htaccess ဖိုင်

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 တွင်ထိရောက်စွာစီမံနိုင်သည်။

မကြာသေးမီ ဆောင်းပါးများ