如何在基本身份验证中显示错误消息?

问题描述 投票:0回答:1

使用PHP,我实现了以下基本身份验证:

if ((isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER']=='') || (isset($_SERVER['PHP_AUTH_PW']) && $_SERVER['PHP_AUTH_PW']=='')) {
    header('WWW-Authenticate: Basic realm="Authentification"');
    $UsrId = $objLDAP->authenticateUser();
    die();
} elseif (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
    $UsrId = $objLDAP->authenticateUser($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
}else{ 
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo '<script>window.location.reload();</script>';
    //$UsrId = $objLDAP->authenticateUser();
    //$smarty->display($templates['budWithoutAnyAccess']);
    die();
}
if ($pUser){
 //coding
}else{
    header('HTTP/1.1 401 Authorization Required');
    header('WWW-Authenticate: Basic realm="Access denied"');
    $UsrId = $objLDAP->authenticateUser();
}

它将打开登录弹出窗口。

如果用户提供了错误的凭据,我可以在页面上显示错误消息,但是在刷新页面时,它也应该打开“身份验证”登录弹出窗口。

同样在取消时,我想显示消息,并在刷新时,它应该打开身份验证登录弹出窗口。

我该怎么做?

谢谢,特伦比

php authentication basic-authentication
1个回答
-1
投票

请检查一下!

  header('WWW-Authenticate: Basic realm="Jonas Realm"');
    header('HTTP/1.0 401 Unauthorized');
     while (!isset($_SERVER['PHP_AUTH_USER'])) {
        header('WWW-Authenticate: Basic realm="Jonas Realm"');
        header('HTTP/1.0 401 Unauthorized');
    }
© www.soinside.com 2019 - 2024. All rights reserved.