由于更改托管,无法进行 PHP 身份验证

发布于 2025-01-07 05:15:03 字数 1374 浏览 0 评论 0原文

下面的代码用于对页面进行身份验证(它是整个页面的片段,但主要思想在这里):

 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配置。你的想法可能是什么原因。 (我确信我写的是正确的用户名和密码。)

The code blow was used for authenticatin for a page (it is snippet of whole page but the main idea is here):

 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;
        }
  }

?>

Now when I have transfered this code to another server, it does not authenticate, it always asks for username, password. I guess it is because of php version, php config. What you think what may br the reason. (I am sure that I am writing the correct username and password.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云朵有点甜 2025-01-14 05:15:03

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

Most likely the reason is CGI API used to run PHP scripts.
You have to either change API to mod_php or change hosting or change HTTP auth to sessions

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文