Жестко запрограммированный пользователь / пароль работает для подключения к MySQL, но строки из файла не работают

Прежде всего, я пытаюсь убедиться, что я не показываю мой пароль MySQL в исходном коде моей страницы индекса. Я решил, что создания файла «mysql.conf» с необходимой мне информацией будет достаточно.

Вот раздел кода, предварительно файл конфигурации. Это сработало без проблем:

$dbhost = "mysql.host.com";
$dbuser = "username";
$dbpass = "password";
$conn = mysql_connect($dbhost, $dbuser, $dbpass);

Теперь вот содержимое файла конфигурации (mysql.conf):

mysql.host.com
username
password

И соответствующие изменения в коде …

$dbConfig = file("./config/mysql.conf");
$dbhost = $dbConfig[0];
$dbuser = $dbConfig[1];
$dbpass = $dbConfig[2];
$conn = mysql_connect($dbhost, $dbuser, $dbpass);

Тем не менее, с изменениями для использования файла конфигурации, соединение MySQL теперь терпит неудачу, давая мне этот ответ об ошибке:

«Не удалось подключиться: доступ запрещен для пользователя ‘username’@’chain-lightning.dreamhost.com’ (используя пароль: ДА)»

Что мне не хватает? Я трижды проверил, что текст в файле конфигурации такой же, как когда я использовал статические строки. Спасибо!

0

Решение

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

от http://php.net/manual/en/function.file.php

Возвращает файл в массиве. Каждый элемент массива соответствует
строка в файле с новой строкой.

используйте функцию trim с вашей переменной, она будет работать нормально.

$dbConfig = file("./config/mysql.conf");
$dbhost = trim($dbConfig[0]);
$dbuser = trim($dbConfig[1]);
$dbpass = trim($dbConfig[2]);

$conn = mysql_connect($dbhost, $dbuser, $dbpass);

или вы можете использовать FILE_IGNORE_NEW_LINES флаг в файловой функции

$dbConfig = file("./config/mysql.conf", FILE_IGNORE_NEW_LINES);
$dbhost = $dbConfig[0];
$dbuser = $dbConfig[1];
$dbpass = $dbConfig[2];

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector