PHP:找不到$ _SERVER ['PHP_AUTH_USER']和$ _SERVER ['PHP_AUTH_PW']

时间:2014-05-17 22:40:06

标签: php mysql

我目前正在学习PHP,而且我遇到了与PHP和HTTP身份验证相关的小问题。

我测试在MySQL数据库中存储用户和密码,并创建登录表单来验证用户。我可以显示表单,但是当我输入用户名和密码(我知道在数据库中)并点击" ok"时,窗口只是不断重置并重新显示空白输入框。

我认为我已经将问题跟踪到$ _SERVER [' PHP_AUTH_USER']和$ _SERVER [' PHP_AUTH_PW']没有被弹出式身份验证窗口设置为我发送数据,第一个" if"声明没有执行。有谁知道为什么会这样?

这是我代码中的一个片段:

  <?php 

require_once 'login.php';

$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if(!$db_server) die("Unable to connect to mySql: " . mysql_error());

mysql_select_db($db_database) or die("Unable to select database: " . mysql_error());
echo "Databse selected<br/>";

if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']))
{
    echo "Auth found<br/>";
    $un_temp = mysql_entities_fix_string($_SERVER['PHP_AUTH_USER']);
    $pw_temp = mysql_entities_fix_string($_SERVER['PHP_AUTH_PW']);
    $query = "SELECT * FROM users WHERE username='$un_temp'";
    $result = mysql_query($query);
    if(!$result) die("Database access failed: " . mysql_error());
    elseif (mysql_num_rows($result))
    {
        $row = mysql_fetch_row($result);
        $salt1 = "qm&h*";
        $salt2 = "pg!@";
        $token = md5("$salt1$password$salt2");

        if($token == $row[3]) echo "$row[0] $row[1] : hi $row[0], you are now logged in as '$row[2]'";
        else die("Invalid username/password combo");
    }
}
    else 
    {
        header('WWW-Authenticate: Basic realm="Restricted Section"');
        header('HTTP/1.0 401 Unauthorized');
        echo("Authing<br/>");
        die("Please enter your username and password");
    }

0 个答案:

没有答案