写文件在codeigniter中不起作用

时间:2014-06-17 07:40:23

标签: php codeigniter

我遇到了一个codeigniter函数write_file(),由于某种原因会写入另外两个文件而不是应用程序路径上的文件。

我偶然发现,在添加迁移时不会写入应用程序数据库。

不会写入文件

write_file(APPPATH . 'config/database.php', $get_template_file_contents, 'r+');

控制器

public function index() {

unset($this->db);

$dsn = $this->input->post('db_driver').$this->input->post('db_username').':'. $this->input->post('db_password').'@'.$this->input->post('db_hostname').'/'.$this->input->post('db_database');

if (is_resource($this->db->conn_id) OR is_object($this->db->conn_id)) {

$data = array();
$data['db_hostname'] = $this->input->post('db_hostname');
$data['db_username'] = $this->input->post('db_username');
$data['db_password'] = $this->input->post('db_password');
$data['db_database'] = $this->input->post('db_database');
$data['db_driver'] = $this->input->post('db_driver');
$data['db_prefix'] = $this->input->post('db_prefix');

$get_template_file_contents  = $this->load->view('template/configuration/database.php', $data, true);

// Does Not Write to File
write_file(APPPATH . 'config/database.php', $get_template_file_contents, 'r+');

// Writes to files OK
write_file(dirname(FCPATH) . '/admin/application/config/database.php', $get_template_file_contents, 'r+');
write_file(dirname(FCPATH) . '/catalog/config/database.php', $get_template_file_contents, 'r+');

$this->load->library('migration');
$this->migration->version(1);
redirect('step_5');

} else {


redirect(step_3);

}

}

1 个答案:

答案 0 :(得分:0)

我不得不改变一些事情,但现在在测试好了之后。

$data['db_hostname']    = $this->input->post('db_hostname');
$data['db_username']    = $this->input->post('db_username');
$data['db_password']    = $this->input->post('db_password');
$data['db_database']    = $this->input->post('db_database');
$data['db_driver']  = $this->input->post('db_driver');
$data['db_prefix']  = $this->input->post('db_prefix');

$get_template_file_contents  = $this->load->view('template/configuration/database', $data, true);
write_file(dirname(FCPATH) . '/admin/application/config/database.php', $get_template_file_contents, 'r+');
write_file(dirname(FCPATH) . '/catalog/config/database.php', $get_template_file_contents, 'r+');
write_file(FCPATH . '/application/config/database.php', $get_template_file_contents, 'r+');


if(write_file(FCPATH . '/application/config/database.php', $get_template_file_contents, 'r+') == true) {

// To Do Fix Load Method Will Not Load On Form Submit.
// Due To Migrations Loading First Before Database.

$this->load->library('migration');
$this->migration->version(1);
redirect('step_5');

} else {
redirect('step_3');
}