Ошибка доступа запрещена в скрипте PHP / MySQL - PullRequest
1 голос
/ 22 февраля 2012

У меня есть PHP-скрипт, который я написал, и одна из страниц прекрасно подключается и выполняется, но другая выдает мне следующую ошибку.Я использую PHP 5.3.6 для установки MAMP:

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 ]

1 голос
/ 22 февраля 2012

При подключении пользователь базы данных не настроен, что-то не так с вашей конфигурацией базы данных и способом подключения к базе.

Убедитесь, что ваши учетные данные базы данных готовы и включены при вызове mysql_connect().

Редактировать: Вы вообще не звоните mysql_connect() в своем коде.

1 голос
/ 22 февраля 2012

Вам не хватает вызова mysql_connect ().

Вы говорите, что вызывали его в другом файле, перенаправленном на эту страницу, но даже если он был подключен на предыдущей странице, он не подключен вэта страница.Таким образом, вы должны вызвать mysql_connect отдельно на этой странице или включить файл, который выполняет вызов.

0 голосов
/ 22 февраля 2012

Я думаю, что проблема, с которой вы работаете, связана с вашим путём к vars.php, если предположить (основываясь на комментариях), что ваш файл vars.php содержит информацию о соединении.Попробуйте использовать относительный путь (например, ../vars.php /, который является только примером) вместо системного пути.Возможно (вероятно), что у сайта нет доступа к системному пути.

РЕДАКТИРОВАТЬ

Я заметил, что вы опубликовали файл vars.php.Теперь мы можем с уверенностью сказать, что mysql_connect не вызывается в коде.В любом файле попробуйте добавить:

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