PHP / MySQL脚本中的访问被拒绝错误

时间:2012-02-22 17:49:47

标签: php mysql access-denied

我有一个我编写的PHP脚本,其中一个页面连接并执行完美,但另一个给了我以下错误。我在MAMP安装上使用PHP 5.3.6:

Access denied for user ''@'localhost' to database 'premind'

这是抛出错误的页面:

<html>
<head><title>User CP</title></head>
<body>
<form name="logoutbutton" method="post" action="logout.php">
<input type="submit" name="logout" value="Log out" />
</form>
<h1>User Control Panel</h1>
<h2>Below is a list of current assignments:</h2>
<?php
include('/Applications/MAMP/htdocs/premind/includes/vars.php');

session_start();
if (isset($_SESSION['emailaddress'])) {

mysql_select_db($db_name) or die(mysql_error());

$sql4 = 'SELECT `aname`, `date`, `useremail`, `aid` FROM `data`';

$result4 = mysql_query($sql4) or die("<br />" . mysql_error());

$countrows2 = mysql_num_rows($result4);

if (!$result4) {
echo "Cannot show assignments!";
}

while ($row = mysql_fetch_array($result4)) {
    if ($row['useremail'] == $_SESSION['emailaddress']) {
    echo $row['aid'].". ".$row['aname']." -- ".$row['date']."<br />";
    echo "<br />";
}
elseif ($countrows2 == 0) {
echo "<h1>No assignments found!</h1>";
}
}

if ($countrows2 == 0) {
echo "<h1>No assignments found!</h1>";
}
}
else {
header('Location: notloggedin.php');
}
?>
<br />
<br />
<h2>Submit an assignment:</h2>
<form name="submitass" method="post" action="submitassignment.php">
<table>
<tr>
    <td><p>Assignment name:</td><td></p><input name="aname" type="text"     id="aname" /></td>
</tr>
</table>
<table>
<tr>    
    <td><p>Due date: (IN YEAR, MONTH, DAY FORMAT)</p></td><td><input     name="date" type="text" id="date" /></td>
</tr>
</table>
<br />
<h2>Example of date: 2012-01-05</h2>
<br />
<input type="submit" name="submitass" value="Submit!" />
</form>
<br />
<br />
<h2>Delete and assignment:</h2>
<p>To delete an assignment, enter the number that you see before the assignment name     above.</p>
<form name="deleteass" method="get" action="deleteassignment.php">
<p>Assignment ID: </p><input type="text" name="assid" id="assid" />
<input type="submit" name="deleteass" value="Delete!" />
</form>
</body>
</html>

这是vars.php文件:

<?php

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password="root"; // Mysql password 
$db_name="premind"; // Database name 
$tbl_name="members"; // Table name

?>

3 个答案:

答案 0 :(得分:1)

您缺少mysql_connect()调用。

您说是在另一个重定向到此页面的文件中调用它,但即使它已在上一页中连接,也未在此页面中连接。因此,您必须在此页面上单独调用mysql_connect,或者包含执行调用的文件。

答案 1 :(得分:1)

连接时没有设置数据库用户,数据库配置和连接数据库的方式有问题。

在调用mysql_connect()时,请确保您的数据库凭据已准备就绪并已包含在内。

修改:您的代码中根本没有调用mysql_connect()

答案 2 :(得分:0)

我认为您运行的问题与您对vars.php的路径有关,假设(基于注释)您的vars.php文件具有连接信息。尝试使用相对路径(例如../vars.php /这只是一个示例)而不是系统路径。可能(可能)该站点无法访问系统路径。

编辑

我注意到你发布了vars.php文件。现在我们可以肯定地说代码中没有调用mysql_connect。在任一文件中尝试添加:

mysql_connect($host,$username,$password);