在PHP中,我正在尝试创建一个基本的HTTP身份验证登录(弹出的登录)。我的理解是通过标题完成的,这是我的标题:
header("WWW-Authenticate: Basic realm='Secure Area'");
之后,我检查输入用户名或密码是否不正确,如果是,我执行一个或另一个功能:
if ($_SERVER["PHP_AUTH_USER"] != $username || $_SERVER["PHP_AUTH_PW"] != $password)
{
quit();
}
else
{
main();
}
然而,当我测试我的代码,并输入正确的用户名和密码并按“登录”时,登录弹出框再次打开,第二次打开后,我可以按“取消”,它带我到主要功能的结果,但如果我只是按“登录”它只是不断弹出。
除此之外,它正常工作。如果我在没有正确输入用户名或密码的情况下按“取消”,它将退出。但是,我需要解决这个看似“无尽登录”的问题。
我该如何解决?
答案 0 :(得分:3)
即使用户通过身份验证,我猜您正在重新发送身份验证标头。将header()调用移动到if块,而不是quit()。