0

我在一个 codeigniter 控制器中有两个功能,它将设置用户的付款状态并发送电子邮件。一个主要功能将调用 send_mail。send_mail 函数将返回 true 或 false。然后在那个主要功能中,用户将被重定向

这是代码..

function send_emai($id){  
 ..  
 ..  
 return $this->email->send(); 
}

function set_paid(){
 //set paid to user data
 $paid=$this->admin_model->set_paid($id_user);
 ..
 ..

 $sent=$this->send_email($id_user);

  if($paid && $sent){
     $this->session->set_flashdata('status',
   array(
     'color'=>'green',
     'message'=>'status paid<br/>Payment Confirmation Email sent'));
   }
  else{
     $this->session->set_flashdata('status',
   array(
     'color'=>'green',
     'message'=>'Booth status not paid<br/>Payment Confirmation Email not sent'));
  }
  redirect(admin/myclass/myfunction);
}

我遇到的错误是

Cannot modify header information - headers already sent by (output started at C:\...\core\Exceptions.php:185)
Filename: libraries/Session.php

和这个。

Cannot modify header information - headers already sent by (output started at C:\...\core\Exceptions.php:185)
Filename: helpers/url_helper.php

我以为这是因为$this->send->email(). 如果我省略了该发送功能,我可以被重定向到页面并获得会话设置的通知。
那么,我能用这个做什么呢?

4

2 回答 2

3

error_reporting 在服务器上吗?如果是这样,请检查是否发生了一些通知或警告。或尝试

error_reporting("E_ERROR");

如果在它之前有回显或打印的内容,甚至是任何 HTML 或纯文本,通常会在任何标题重定向之前发生无法修改标题。

希望这可以帮助

于 2012-02-28T10:18:59.300 回答
0

$this->email->clear()发送邮件后使用。这会将所有电子邮件变量初始化为空状态。

于 2012-02-27T10:36:45.147 回答