PHP parse_ini_file и включает в себя не работает (настольный LAMP Ubuntu) - PullRequest
0 голосов
/ 21 мая 2018

Новое здесь, и PHP для меня новый язык.Я пытаюсь разработать веб-приложение.Чтобы обеспечить безопасность, я пытаюсь сохранить свои учетные данные для входа в базу данных в простой INI-файл (называемый db.ini).

1) Моя система работает под управлением Ubuntu 18.04.Я установил LAMP

2) Сценарий, который обновляет базу данных с помощью mysqli_connect и mysqli_query, прекрасно работает, когда у меня есть учетные данные для входа в скрипт myqli_connect, вставленный ниже.Обратите внимание, что для устранения неполадок я выводю сообщение об успешном соединении:

$db = 'my_db';
$db_use = 'my_root_user';
$db_pass = 'my_password';
$db_host = 'localhost:3306';

$conn = mysqli_connect($db_host, $db_use, $db_pass, $db);
if(! $conn) 
    {die('Could not connect connect: ' . mysqli_connect_error()) ;
} else
    {echo ("Success");
}

3) Я создал файл db.ini из соображений безопасности.Хотя я планирую переместить его позже, я сохранил его в том же каталоге, что и мой скрипт .php: (\ var \ www \ html \ my_site).

Вот как .ini читает

[database]
host = localhost:3306
username = my_root_user
password = my_password
dbname = my_database

3) Я попытался проанализировать этот файл с помощью следующих методов.Все не удалось в print_r, не говоря уже об открытии базы данных, поэтому они не открываются.

parse_ini_file('db.ini') // failed
parse_ini_file('/var/www/html/my_site/db.ini'); // failed

4) Я подтвердил, что файл существует в моем php, используя следующий код.

$filename = 'db.ini';

if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}

5) Ergo, импорт не работает на моей установке (Ubuntu LAMP).

6) В связи с этим я попробовал это как требование, сохранив переменные как db_config.php.Это тоже не связывалось, хотя файл существует.

Само собой разумеется, я в конце своей веревки.Какие-либо предложения?У меня такое ощущение, что это проблема конфигурации, когда скрипт защищен от взаимодействия с другими файлами на Apache или в моем Linux, но у меня нет опыта, куда идти.

1 Ответ

0 голосов
/ 21 мая 2018

Попробуйте использовать этот parse_ini_string .

Код

$filename = 'db.ini';

if (file_exists($filename)) {
    $db = parse_ini_string(file_get_contents($filename));
    var_dump($db);
} else {
    echo "The file $filename does not exist";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...