PHP: mysql_connect не возвращает FALSE - PullRequest
       16

PHP: mysql_connect не возвращает FALSE

2 голосов
/ 06 сентября 2011

У меня есть форма, где пользователь вводит данные своей базы данных и может щелкнуть ссылку, которая использует AJAX для отправки учетных данных на эту страницу.У меня проблема в том, что, пока они вводят правильное имя хоста, скрипт возвращает TRUE.

Есть ли другой способ проверить это, чтобы он возвращал FALSE, если имя пользователя и пароль не указаныvalid?

$h  =   urldecode($_GET['h']);
$u  =   urldecode($_GET['u']);
$p  =   urldecode($_GET['p']);

$con = mysql_connect($h, $u, $p);

if(!$con){
    echo 'Could not connect';
}

else{
    echo 'Connected';
}

Решено!

Для дальнейшего использования проблема заключалась в том, что там, где есть записи в пользовательской таблице mysql для user = "Any".Я удалил этих пользователей и скрипт работал как положено.Я обновил этот пост, чтобы включить снимок экрана для тех, у кого есть подобные проблемы.Спасибо Фабио ниже за предложение!

The user table in MYSQL included entries for

1 Ответ

5 голосов
/ 06 сентября 2011

Это потому, что mysql_connect использует некоторые значения по умолчанию при подключении, которые должны быть root для имени пользователя и пустую строку для пароля, если я правильно помню его. В качестве альтернативы может использоваться имя пользователя, под которым работает веб-сервер.

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

С точки зрения безопасности ваш код не очень безопасен, учетные данные БД передаются в виде открытого текста, и, как правило, учетные данные БД не должны вводиться конечными пользователями (если вы не пишете инструмент, подобный PhpMyAdmin).

...