由于更改主机,无法完成PHP身份验证

时间:2012-02-19 12:43:11

标签: php authentication header

代码打击用于页面的authenticatin(它是整页的片段,但主要想法在这里):

 if (!isset($_SERVER['PHP_AUTH_USER'])) {
        header("WWW-Authenticate: Basic realm=\"MX Administration\"");
        header("HTTP/1.0 401 Unauthorized");
        exit;
  } 
  else {
        session_start();
        if( $_SERVER['PHP_AUTH_USER'] == $login && md5($_SERVER['PHP_AUTH_PW'] ) == $password ){

                if( $_SESSION['adm'] == '' && empty($_POST) ){
                    header("Location: whmcs.php");
                    exit;
                }
                elseif( $_SESSION['adm'] == '' && !empty($_POST) ){

                    if(  $_POST['login'] == $login_in &&  md5($_POST['password']) == $password_in ){
                        $_SESSION['adm']="OK";  
                    }
                    else{
                        header("Location: whmcs.php?do=message");
                        exit;
                    }
                 }
                 else{
                    $_SESSION['adm']="OK";
                 }

        }
        else{
            header("WWW-Authenticate: Basic realm=\"MX Administration\"");
            header("HTTP/1.0 401 Unauthorized");
            echo ":)\n";
            exit;
        }
  }

?>

现在,当我将此代码转移到另一台服务器时,它不会进行身份验证,它总是要求输入用户名和密码。我猜这是因为php版本,php配置。你认为可能是什么原因。 (我确信我正在写正确的用户名和密码。)

1 个答案:

答案 0 :(得分:0)

最有可能的原因是用于运行PHP脚本的CGI API 您必须将API更改为mod_php或更改主机或将HTTP身份验证更改为会话