gpt4 book ai didi

php - 硬编码的用户/密码适用于 MySQL 连接,但文件中的字符串不适用于

转载 作者:行者123 更新时间:2023-11-29 11:03:52 24 4
gpt4 key购买 nike

首先,我试图确保我没有在索引页的源代码中显示我的 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 连接现在失败,给出以下错误响应:

“无法连接:用户‘用户名’@‘chain-lightning.dreamhost.com’的访问被拒绝(使用密码:YES)”

我错过了什么?我已经三次检查配置文件中的文本是否与使用静态字符串时相同。谢谢!

最佳答案

您收到的错误主要是因为从文件获取的数据并不像您想象的那样。您的所有值都将添加额外的换行符值。

来自http://php.net/manual/en/function.file.php

Returns the file in an array. Each element of the array corresponds to a line in the file, with the newline still attached.

对变量使用修剪函数,它会正常工作。

$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);

关于php - 硬编码的用户/密码适用于 MySQL 连接,但文件中的字符串不适用于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41758102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com