Извините, если заголовок не ясен, я в проекте, где мы создаем приложение для Android, которое подключается к базе данных MySql для отображения некоторых данных. Мы используем PHP для подключения к базе данных, и мы используем dbconfig.php, который содержит что-то вроде:
define("servername", "host");
define("username", "username");
define("password", "password");
define("database", "database");
Поскольку мы часто подключаемся к базам данных, размещенным на разных серверах, нам приходилось вручную изменять dbconfig каждый раз перед запуском приложения, поэтому мы думаем позволить пользователю написать эту информацию в самом приложении. Я думал, что приложение отправит запрос POST, а dbconfig - что-то вроде этого:
define("servername", $_POST["host"]);
define("username", $_POST["username"]);
define("password", $_POST["password"]);
define("database", $_POST["database"]);
Но я знаю, что dbconfig должен быть безопасным, поэтому мне неудобно динамически изменять dbconfig и выглядит как плохая идея. Каков наилучший способ достижения этого?
Редактировать: Это плохая идея, на другой ноте, как приложение, похожее на эту работу? Не потребовался бы ли какой-либо запрос POST для отправки учетных данных базы данных на серверный язык?
Это настоящая плохая идея, потому что:
Один из подходов - определить некоторые конечные точки REST и позволить вашему приложению вызвать эти конечные точки. Затем конечные точки могут решить, к какому серверу они будут подключаться.
если вы находитесь в режиме разработки, у вас может быть другая домашняя страница для отправки имени используемой базы данных.. что-то похожее на это
$db = isset($_POST['db']) ? $_POST['db'] : 'default';
switch ($db) {
case 'db1':
$servername = 'host1';
$username = 'username1';
$password = 'password1';
$database = 'database1';
break;
case 'db2':
$servername = 'host2';
$username = 'username2';
$password = 'password2';
$database = 'database2';
break;
default:
$servername = 'default_host';
$username = 'default_username';
$password = 'default_password';
$database = 'default_database';
break;
}
define("SERVERNAME", $servername);
define("USERNAME", $username);
define("PASSWORD", $password);
define("DATABASE", $database);