通过前端编辑Codeigniter的配置和数据库设置

时间:2014-10-18 13:10:39

标签: php codeigniter

我正在为一个网站开发像Magento这样的安装脚本,可以在CodeIgniter中为将来的项目重复使用。安装脚本的目的是为网站创建一些表格和一些基本数据,如网站名称,描述,OG标签等。

有一个先决条件文件,install-prerequisite.php,用户将通过该文件输入数据库主机,数据库用户名,数据库密码并提交凭据。使用.htaccess从CodeIgniter的index.php中排除先决条件,以排除数据库连接。

RewriteCond $1 !^(index\.php|install-prerequisite\.php|robots\.txt)

必须在CodeIgniter的database.php中更新install-prerequisite.php中的值。这也必须验证成功连接。这可能吗?

同样可以通过表格中的数据编辑config.php吗?用户可以从网页编辑sess_cookie_namesess_expiration等的值,然后更新为config.php

符类:

  1. 以编程方式更新database.php参数。
  2. 以编程方式更新config.php参数。
  3. 检查与install.php。
  4. 中database.php中保存的参数的连接

1 个答案:

答案 0 :(得分:0)

我建议将数据库名称,用户,传递等自定义值存储在可通过登录访问的全局数据库中,而不是存储在文件" install-prerequisite.php"。

然后您可以通过输入数据并手动连接来加载用户的数据库和配置:

https://ellislab.com/codeIgniter/user-guide/database/connecting.html https://ellislab.com/codeIgniter/user-guide/libraries/config.html

将此函数放在每个页面的构造中或预控制器挂钩中。

这使您可以编辑配置而无需编辑配置文件夹中的.php文件(我认为它很糟糕)并覆盖一般配置值。

例如:

$confvalues = $this->db->where('name','dude')->get('user_configs')->row();

$db['dude']['hostname'] = "localhost";
$db['dude']['username'] = $confvalues->db_user;
$db['dude']['password'] = $confvalues->db_pass;
$active_group = "dude";

现在,当你去$ this-> db时,它会使用这个数据库

$this->config->set_item('sess_cookie_name', $confvalues->sess_cookie);