繁体   English   中英

php header()身份验证

[英]php header() Authentication

谁能告诉我为什么这种身份验证不起作用?

这是一个细分:

1)我正在尝试使用WWW-Authenticate和php header()函数创建一个简单的身份验证。
2)当我转到页面时,身份验证框会像这样弹出: 页面加载后,我收到此提示。
3)如果删除脚本(请参见下面的脚本),则页面将按预期加载。
4)无论我输入什么密码或添加/删除领域,陈旧等,什么都没有,并且当我单击“登录”时,“身份验证”框只会不断循环播放。

if( $_SERVER['PHP_AUTH_USER'] != NULL && $_SERVER['PHP_AUTH_PW'] != NULL && $_SERVER['PHP_AUTH_USER'] == ‘admin1’ && $_SERVER['PHP_AUTH_PW'] == ‘pwd1’ ) {
   $_SESSION['login_flag'] = true;
  } else {
header("WWW-Authenticate: Basic realm=\”Schoolroom\”, stale=FALSE");
    header("HTTP/1.0 401 Unauthorized");
    print "<h1>401 Unauthorized</h1>";
    exit();
  }

谁能告诉我我在做什么错? 我也曾尝试在多种浏览器和各种计算机上使用同一问题。

更新:太平洋标准时间7月5日上午10:44-到目前为止,这是我经过修改,更新和注释过的代码的位置:

 <?php
header('WWW-Authenticate: Basic realm="Secret page"');
header('HTTP/1.0 401 Unauthorized');

// Status flag:
$LoginSuccessful = false;

// Check username and password:
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])){

$Username = $_SERVER['PHP_AUTH_USER'];
$Password = $_SERVER['PHP_AUTH_PW'];

if ($Username == 'usrnm' && $Password == 'pswrd') {
$LoginSuccessful = true;
}
}

// Login passed successful?
if (!$LoginSuccessful){

/*
** The user gets here if:
**
** 1. The user entered incorrect login data (three times)
** --> User will see the error message from below
**
** 2. Or the user requested the page for the first time
** --> Then the 401 headers apply and the "login box" will
** be shown
*/

// The text inside the realm section will be visible for the
// user in the login box
//header('WWW-Authenticate: Basic realm="Secret page"');
//header('HTTP/1.0 401 Unauthorized');

print "Login failed!\n";

}
else {

// The user entered the correct login data, put
// your confidential data in here:

print 'you reached the secret page!';
}

?>

但是,该脚本不会提示登录窗口,而是呈现“登录失败”。

我们使用所有可用的PHP版本5.0、5.1、5.2、5.3、5.4、5.5、5.6、7.0、7.1对其进行了测试,但无济于事。

看起来好像您在测试是否要设置$_SESSION['login_flag']并正确。

if(isset($_SESSION['login_flag'] && $_SESSION['login_flag'] == true)) { 
//load the page without authentication
}
else {
//ask for authentication
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM