使用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();
}
它将打开登录弹出窗口。
如果用户提供了错误的凭据,我可以在页面上显示错误消息,但是在刷新页面时,它也应该打开“身份验证”登录弹出窗口。
同样在取消时,我想显示消息,并在刷新时,它应该打开身份验证登录弹出窗口。
我该怎么做?
谢谢,特伦比
请检查一下!
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');
}