在php中使用身份验证连接数据库时出错


error with connecting to database using authentication in php

错误如下:

  1. 无法连接MySQL:用户'ZEBRAHEAD'@'localhost'被拒绝访问(使用密码:YES)

  2. 警告:mysql_connect():访问拒绝为用户'ZEBRAHEAD'@'localhost'(使用密码:YES)在C:'wamp'www'TestSite'authentication.php on line 12

DB_USER正在使用计算机名。

authentication.php


<?php
$authorized = FALSE;
if ((isset($_SERVER['PHP_AUTH_USER']) AND isset($_SERVER['PHP_AUTH_PW'])))
{
    define ('DB_USER','ZEBRAHEAD');
    define ('DB_PASSWORD','password');
    define ('DB_HOST','localhost');
    define ('DB_NAME','registration');
    $dbc = mysql_connect (DB_HOST,DB_USER,DB_PASSWORD) OR die ('Could not  connect to MySQL: '.mysql_error());
    mysql_select_db (DB_NAME) OR die ('Could not select the database: '.mysql_error());
    $query ="SELECT first_name FROM users WHERE username='{$_SERVER['PHP_AUTH_USER']}' AND password=PASSWORD('{$_SERVER['PHP_AUTH_PW']}')";
    $result = mysql_query($query);
    $row=mysql_fetch_array ($result);
    if ($row)
    {
        $authorized = TRUE;
    }
}
if(!$authorized) 
{
    header('WWW-Authenticate: Basic realm="My WebSite"');
    header ('HTTP/1.0 401 Unauthorized');
}
?>

index . php


<?php
require_once('authentication.php');
?>
<html>
<head></head>
<body>
if ($authorized)
{
    echo "<p>Please enter a valid username and password!</p>";
}
else
{
    echo "<p>You have been authenticated!</p>";
}
?>
</body>
</html>

检查用户权限,并赋予全局权限

首先确保您使用了正确的用户名。查询所有用户,执行如下查询:

SELECT User FROM mysql.user;

一旦从上面的查询结果确认您使用正确的用户名,现在请确保您的密码是正确的。

你可以在这里看到我的帖子,我认为你的问题是在密码或在用户权限。试试这个

define ('DB_PASSWORD','');

然后检查权限