Я пытаюсь использовать mysql_real_escape_string () для защиты формы входа.
Используя этот код:
include_once 'access-shared.php';
include_once 'access-databaseconnect.php';
session_start();
$email = mysql_real_escape_string(isset($_POST['email'])) ? mysql_real_escape_string($_POST['email']) : $_SESSION['email'];
$password = mysql_real_escape_string(isset($_POST['password'])) ? mysql_real_escape_string($_POST['password']) : $_SESSION['password'];
Проблема в том, что каждый раз выдает ошибку:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'xxx'@'localhost' (using password: NO)
Я не могу разобраться с этим, у пользователя db есть все разрешения, а данные имени пользователя верны в файле access-databaseconnect.php. Он отлично работает без mysql_real_escape_string вокруг $ _POST, но, очевидно, оставляет его открытым для внедрения MySQL.
Любая помощь наиболее ценится.
РЕДАКТИРОВАТЬ: Вот содержимое файла access-databaseconnect.php:
<?php
$dbhost = 'localhost';
$dbusername = 'xxxx';
$dbpassword = 'xxxx';
function dbConnect($db='') {
global $dbhost, $dbusername, $dbpassword;
$dbcnx = @mysql_connect($dbhost, $dbusername, $dbpassword)
or die('Cannot connect to Database: '.mysql_error());
if ($db!='' and !@mysql_select_db($db))
die('Cannot connect to Database: '.mysql_error());
return $dbcnx;
}
?>