在我的网站的管理区域中有一个表单,用于网站使用的mysql数据库的主机名,用户名和密码。目前这些值被硬编码为一个php类。但是我可以链接谁,以便表单可以编辑php类中的变量(并将结果保存在服务器上,换句话说,变量是硬编码的)。我通常会把这样的东西放在数据库中,但显然这是无法完成的。在没有数据库的情况下永久保存php变量
回答
将值保存在配置文件中。并确保它无法通过网络访问。
最简单的解决方案是将值保存在配置数组中 - 用户输入值,然后从中生成一个数组,然后file_put_contents("config.php", "<?php $config = " . var_export($config))
。有了这个方法,无论何时你需要配置数组,你所需要做的就是include config.php
,它就在那里。
这是未经过测试的代码,仅用于举例目的。根据你的情况,你可能需要解决竞争条件,file_put_contents
是不够的。上面代码的主要点是:var_export
返回有效的php代码,你可以eval
(如果你足够邪恶的话)或回应到一个文件,并在稍后加入。
这是如何工作的,如果我想在第一次创建配置文件时进行修改。 – 2010-07-25 09:55:36
@Jonathan您可以修改已经加载的'$ config'数组,然后再次执行'file_put_contents'部分。 – Maerlyn 2010-07-25 10:03:17
所以只需重新创建文件? – 2010-07-25 10:27:38
创建配置文件,并授予您的Web服务器对其的写入权限。然后,只需编写一个将DB配置保存到此文件的脚本即可。例如。
$fh = fopen('config.php', 'w');
fwrite($fh, chr(60) . "?php\n");
fwrite($fh, sprintf("define('DB_HOST', '%s');\n", addslashes($_POST['DB_HOST'])));
fwrite($fh, sprintf("define('DB_USER', '%s');\n", addslashes($_POST['DB_USER'])));
fwrite($fh, sprintf("define('DB_PASS', '%s');\n", addslashes($_POST['DB_PASS'])));
fclose($fh);
这是如何工作的,如果我想在第一次创建配置文件时对其进行修改。 – 2010-07-25 09:45:53
你会把配置文件创建代码放在另一个脚本editconfig.php中。 – jmz 2010-07-25 10:38:36
- 1. 如何在没有数据库的情况下每5分钟保存一次php变量
- 2. 永久PHP变量
- 3. 永久保存数据
- 4. PHP永久缓存数据
- 5. 如何永久保存变量?
- 6. 如何在没有任何数据库的情况下保存我的datagridview?
- 7. 如何在没有数据库(PHP)的情况下存储密码?
- 8. 在没有数据库调用的情况下获取持久实体引用
- 9. 如何在没有数据库的情况下收集数据
- 10. 如何在没有全局变量的情况下始终保持变量?
- 11. PostgreSQL永久连接:在我的情况下有用吗?
- 12. 让PHP在没有大量变量的情况下获得可用天数
- 13. 在有或没有索引的情况下复制数据库?
- 14. 在没有ORM的情况下在Python中使用数据库
- 15. 在没有参考的情况下保留数据
- 16. 在没有轮询的情况下观察变量的变化
- 17. SharedPreferences不会永久保存数据
- 18. 保存表单数据永久
- 19. Python Sqlite3 - 数据不是永久保存
- 20. CoreData数据库在没有iCloud的情况下同步?
- 21. 在没有数据库的情况下运行Drupal 7网站
- 22. 在没有pg dump的情况下恢复Postgres数据库?
- 23. 永久保存CoreData
- 24. CoreData永久保存?
- 25. 在没有php的情况下创建并更新数据库(在Heroku上)
- 26. PHP环境变量?没有数据库存储数据
- 27. 如何将我的$ _POST变量永久保存在$ _SESSION中?
- 28. 想要永久存储SQLite数据库
- 29. 将数据永久存储在变量中(javascript)
- 30. 永久保存使用Javascript创建的SQL数据库
可能重复的[PHP,阅读文件](http://stackoverflow.com/questions/2237291/php-reading-file) – Gordon 2010-07-25 10:09:10
哦,不要这么迂腐,这是关于写作,而不是阅读文件。 – 2010-07-25 10:32:35