0

我正在创建几个 php 脚本。我必须始终为同一个数据库和表的每个脚本插入主机、用户名、密码等吗?有没有办法只用一行或其他方式进行参考?无论如何要隐藏此信息吗?

$host="XXXXXXXXX";
$username="XXXXX";
$password="XXXXX";
$db_name="XXXXXX";
$tbl_name="XXXXX";
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
4

2 回答 2

3

虽然 PHP 文件被执行,因此源代码在网络上是不可见的,但意外的错误配置可能会改变这一点。您可以将数据库配置放在wbeserver 文档根目录之外的单独文件中,并使用 PHP 的require命令将其包含在其他脚本中。

但是,根据 PHP 配置,PHP 脚本可能无法访问 docroot 之外的文件,但有一些方法可以解决这个问题。这个 SO question详细讨论了这些问题

于 2012-04-21T21:47:12.033 回答
1

如果您不想将凭据放在 php 文件中,则可以将它们放在 php.ini 配置文件中。

mysql.default_host = "localhost"
mysql.default_user = "user"
mysql.default_password = "pass"

然后在php源代码中:

<?php

$connect_db = mysql_connect();
$err = mysql_error();
if ($err != "")
{
        echo "Error connecting to database: $err";
        die;
}

if (!mysql_select_db("mydomain_com_test", $connect_db))
{
        echo mysql_error()."<br/>";
        die;
}

$sql = "SELECT NOW()";
$rows = mysql_query( $sql );

?>
于 2012-04-21T23:02:35.957 回答