从 php 中编辑包含设置的文件


Edit file containing settings from within php

我有一个名为config.php的文件,它存储连接到数据库的变量(用户名,密码等)我希望能够从html表单编辑这些设置(我已经设置好了)

但是,我无法找到如何从表单中重新定义这些变量,我将表单发送到页面 updateDatabaseSettings.php但不知道如何更改它们。

您在这方面的帮助将不胜感激。

到目前为止,我拥有的代码:

配置.php

$DBUSER="root"; 
$DBPASS=""; 
$DBHOST="127.0.0.1"; 
$DBNAME="mydb";

更新数据库设置.php

$newDBHOST = $_POST['dbhost'];
$newDBNAME = $_POST['dbname'];
$newDBUSER = $_POST['dbuser'];
$newDBPASS = $_POST['dbpass'];

假设用户输入 192.168.1.2 $newDBHOST我希望它替换$DBHOST中的文本

谢谢

您的updateDatabaseSettings.php脚本需要覆盖config.php文件的内容。

一个简单的方法是构造一个包含所有新内容(包括<?php ?>标签和所有变量声明)的字符串。然后,可以将该字符串传递给file_put_contents()以覆盖config.php文件。

不过,请记住检查您的文件权限。您需要允许 Web 服务器写入 config.php ,否则它将无法工作。

你有很多选择,所以很难说,但我会创建两个数据库连接的实例 - 一个默认连接和第二个变量连接。默认连接可以从配置中获取配置信息.php并且您始终可以连接到默认数据库,第二个实例将始终直接从 POST 获取配置信息,并在调用 POST 请求时创建新连接。

您也可以使用全局变量,并在需要时重写它们,或者直接使用 PHP 更改 config.php 文件(查看 fopen,fwrite,fclose,...函数)。

我想在

updateDatabaseSettings中包含config.php.php并替换值?甚至将这些变量设置为全局变量?然后我想你必须杀死并初始化一个新的数据库连接。很难回答,需要知道你的应用是如何架构的。