使用表单更新PHP inc文件
我有一个inc文件,其中包含4个MySQL数据库变量——主机名、数据库、用户名和密码。这些inc文件包含在其他php文件中,用于执行数据库查询 我想做的是创建一个可以更新inc文件的表单,以便更改MySQL变量。作为一个真正的新手,我不知道如何处理这个问题,所以非常感谢您的帮助使用表单更新PHP inc文件,php,mysql,sql,Php,Mysql,Sql,我有一个inc文件,其中包含4个MySQL数据库变量——主机名、数据库、用户名和密码。这些inc文件包含在其他php文件中,用于执行数据库查询 我想做的是创建一个可以更新inc文件的表单,以便更改MySQL变量。作为一个真正的新手,我不知道如何处理这个问题,所以非常感谢您的帮助 非常感谢。你必须非常小心地做这样的事情,通常情况下,它会允许人们入侵和/或破坏你的应用程序 您需要做的只是用新值覆盖您的文件-如何收集这些值取决于您自己 假设您是通过从网页提交的POST表单收集值,您可以执行以下操作:
非常感谢。你必须非常小心地做这样的事情,通常情况下,它会允许人们入侵和/或破坏你的应用程序 您需要做的只是用新值覆盖您的文件-如何收集这些值取决于您自己 假设您是通过从网页提交的POST表单收集值,您可以执行以下操作:
<?php
// Create the new file contents
// Be careful not to add any extra leading/trailing whitespace before or after
// the opening and closing tags!
$newFileContents = "<?php
\$mysqlHostName = '{$_POST['newhost']}';
\$mysqlDBName = '{$_POST['newdb']}';
\$mysqlUserName = '{$_POST['newuser']}';
\$mysqlPassword = '{$_POST['newpass']}';
";
// Overwrite your file
file_put_contents('mysqlconfig.php',$newFileContents);
<html>
<head>
</head>
<body>
<form action="update_mysql_vars.php" method="post">
Hostname <input name="hostname" /><br />
Database <input name="database" /><br />
Username <input name="username" /><br />
Password <input name="passowrd" /><br />
</form>
</body>
</html>
<?php
$h = fopen("/path/to/inc/file.inc", "w");
write
(
$h,
"<?php\n" .
"\$hostname = " . $_POST["hostname"] . ";\n" .
"\$database = " . $_POST["database"] . ";\n" .
"\$username = " . $_POST["username"] . ";\n" .
"\$password = " . $_POST["password"] . ";\n" .
"?>"
);
fclose($h);
?>
看一看
你也可以使用
相反
您还需要对要更改的文件进行chmod
但是我同意Jon Stirling的观点,你应该直接进入代码,编辑几个变量,而不是这个。它确实可能存在安全漏洞。您的表单HTML可能如下所示:
<?php
// Create the new file contents
// Be careful not to add any extra leading/trailing whitespace before or after
// the opening and closing tags!
$newFileContents = "<?php
\$mysqlHostName = '{$_POST['newhost']}';
\$mysqlDBName = '{$_POST['newdb']}';
\$mysqlUserName = '{$_POST['newuser']}';
\$mysqlPassword = '{$_POST['newpass']}';
";
// Overwrite your file
file_put_contents('mysqlconfig.php',$newFileContents);
<html>
<head>
</head>
<body>
<form action="update_mysql_vars.php" method="post">
Hostname <input name="hostname" /><br />
Database <input name="database" /><br />
Username <input name="username" /><br />
Password <input name="passowrd" /><br />
</form>
</body>
</html>
<?php
$h = fopen("/path/to/inc/file.inc", "w");
write
(
$h,
"<?php\n" .
"\$hostname = " . $_POST["hostname"] . ";\n" .
"\$database = " . $_POST["database"] . ";\n" .
"\$username = " . $_POST["username"] . ";\n" .
"\$password = " . $_POST["password"] . ";\n" .
"?>"
);
fclose($h);
?>
显然,您需要添加错误检查、输入检查,并确保更新脚本只能由那些真正有权更改数据库访问变量的人访问 老实说,我不建议这样做。它打开了潜在的安全漏洞。我同意@Jon Stirling的观点,但我可以看到这种东西对初始应用程序的设置有什么帮助。非常感谢,这篇文章真的很有帮助。只是一个小提示:PHP文件不需要结尾?>
标记。省略此标记是一种很好、安全的方法,可以确保在使用文件时不会有空格尾随,然后“意外”得到输出。@Erik很好,我将更新上面的代码。感谢您的帮助。