php 网站通过前端 form 更改数据库连接,如何实现?

2016-04-15 10:01:08 +08:00
 Sparty

网站的数据库连接信息原本存在一个静态的 config.php 文件里,现在需要一个页面让用户输入 dbname , dbuser , dbpass , dbhost 等信息(页面需要 admin 权限),实现数据库的随意转换。 现在能做到获取用户输入的信息并且测试链接,但是不知道如何保存这四个变量长期使用。唯一想到的方法是使用 php 在服务器上再创一个静态的文件(dbinfo.php)保存这些信息。但是目前遇到一些权限问题导致无法使用服务器上面的 php 文件写 php 文件。想问问大家还有没有什么别的更好的方法?

2706 次点击
所在节点    PHP
9 条回复
chenwl
2016-04-15 10:04:19 +08:00
建议直接黑了吧~!
UnisandK
2016-04-15 10:04:36 +08:00
把他输入的数据库信息存你数据库里
chend
2016-04-15 10:05:03 +08:00
好奇怪的需求。。。

每次都需要用户输入, 为什么不用 session cookie~~
只需要一次, 可以存入数据库。。。。

最后, i2ex 水得比较多, 这种问答类 还是到 问答 社区 比较好~~ 比如 国内的 ruby china, segment
arnofeng
2016-04-15 10:05:25 +08:00
数据库另外一个表存这四个变量呗。不停维护就行。
lissome
2016-04-15 10:54:20 +08:00
存数据库,或者存其他格式的配置文件啊,比如 .ini ,.conf ……
fate
2016-04-15 11:26:35 +08:00
加上一个数据库连接表,和用户关联,每次执行查询都先使用相关用户存到的数据库连接表的数据连接.
domty
2016-04-15 13:13:19 +08:00
我不是写 php 的
但是以前大学学 php 的时候有用过一个叫 phpMyAdmin 的工具,和你描述的需求好相似
flowfire
2016-04-15 13:22:16 +08:00
@domty phpmyadmin 可是个大工程。。。
Sparty
2016-04-16 03:51:23 +08:00
感谢大家的回复,已经跟 boss 讨论并且决定更改这个需求了,之前找到一段话我觉得是这个问题的标准答案,这里贴出来跟大家分享:

This is a bad idea. You should not be modifying configuration file like this. If you you have configuration that can be administered by the user, you should be storing it in a database or, worst case scenario, in a generic file format (ini, XML etc). A configuration file that stores the database connection details should never be modified by an application, only manually by the administrator - because it is important that the file is secure and it is an event that should be very rare.Calling include/require on a file that is dynamically modified is asking for trouble.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/271219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX