Codeigniter $this->email->send() 函数导致错误无法修改标头信息



我在一个代码点火器控制器中有两个功能,它将设置用户的付款状态并发送电子邮件。一个主函数将调用sendmail。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:...coreExceptions.php:185)
Filename: libraries/Session.php

还有这个

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

我认为这是因为$this->send->email()。如果我省略了发送功能我可以被重定向到页面,并通过会话设置通知
那么,我该怎么办呢?

服务器上是否启用了error_reporting?如果是,请检查是否出现了一些通知或警告。或者尝试

error_reporting("E_ERROR");

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

希望这对有帮助

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

相关内容

  • 没有找到相关文章

最新更新