我正在开展一个学校项目(写一个网站),我遇到了为我们的数据库连接提供密码的问题。由于我们的开源许可证,我们必须发布源代码,但这意味着每个人都可以连接到数据库并查看数据。
目前我们的连接(一个php文件)如下所示:
$host="************";
$password="************";
$this->conn = new mysqli($host, $user, $password, $dbname).mysqli_connect_error());
现在我的问题是:如何在不需要写$password=...
的情况下提供连接数据库的密码?
答案 0 :(得分:5)
好的,这是 ini 文件中的那个:
<?php
$db_params = parse_ini_file( dirname(__FILE__).'/db_params.ini', false );
// .....
$this->conn = new mysqli($db_params['host'], $db_params['user'], $db_params['password'], $db_params['dbname'], $db_params['port'], $db_params['socket']).mysqli_connect_error());
// ...
?>
host=mysql.example.com
port=3306
socket=
user=testuser
password=myPasswort
dbname=myDatabase
答案 1 :(得分:1)
使用单个文件包含配置变量,并在共享代码时排除此文件。
例如:
require_once('config.php');
$this->conn = new mysqli($config['db']['host'], $config['db']['user'], $config['db']['pass'], $config['db']['dbname']);
config.php
文件包括:
$config['db']['username'] = 'user';
$config['db']['password'] = 'pass';
...
你可以/应该扩展它以包括主机,端口,数据库名称等。