各位,在我的机子上使用$PHP_AUTH_USER来验证密码始终通,久思不得其解,望各位帮助解决一下。 
我的实现方法如下: 比如说,我用如下的代码调试: 
<? 
if(!isset($PHP_AUTH_USER)) 

Header("WWW-Authenticate: Basic realm="My Realm""); 
Header("HTTP/1.0 401 Unauthorized"); 
echo "Text to send if user hits Cancel button"; 
exit; 

else 

if ( !($PHP_AUTH_USER=="tnc" && $PHP_AUTH_PW=="nature") ) 

// 如果是错误的用户名称/密码对,强制再验证 
Header("WWW-Authenticate: Basic realm="My Realm""); 
Header("HTTP/1.0 401 Unauthorized"); 
echo "ERROR : $PHP_AUTH_USER/$PHP_AUTH_PW is invalid."; 
exit; 

else 

echo "Welcome tnc!"; 

?>   能够弹出密码框,但是输入完后,就是无法继续运行下去,不管条件是否满足,都会再次弹出来要求再次输入密码和用户名。到最后的结果就是无法正常的使用它验证密码。 
  
即使我把tnc和nature都正确输入了,也还是会跳出来那个对话框,一直下去,最后就是显示Text to send if user hits Cancel button,也就是没有通过的提示。 
  请各位帮助解决一下,本人不胜感激。

解决方案 »

  1.   

    双引号有问题,大括号不对称改$_SERVER['PHP_AUTH_USER']$_SERVER['PHP_AUTH_PW']
      

  2.   

    那里改好了,还是老是弹出密码框,我用的系统是2003+iis6
      

  3.   


    if(!isset($_SERVER['PHP_AUTH_USER']))  
    {  
    Header("WWW-Authenticate: Basic realm=\"My Realm\"");  
    Header("HTTP/1.0 401 Unauthorized");  
    echo "Text to send if user hits Cancel button";  
    exit;  
    }  
    else  
    {  
    if ( !($_SERVER['PHP_AUTH_USER']=="tnc" && $_SERVER['PHP_AUTH_PW']=="nature") )  
    {  
    // 如果是错误的用户名称/密码对,强制再验证  
    Header("WWW-Authenticate: Basic realm=\"My Realm\"");  
    Header("HTTP/1.0 401 Unauthorized");  
    echo "ERROR : $PHP_AUTH_USER/$PHP_AUTH_PW is invalid.";  
    exit;  
    }  
    else  
    {  
    echo "Welcome tnc!";  
    }  
    }
      

  4.   

    换 Apache     IIS的问题