Функция Codeigniter $ this-> email-> send (), вызывающая ошибки, не может изменить информацию заголовка - PullRequest
0 голосов
/ 26 февраля 2012

У меня две функции в одном контроллере 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().Если бы я пропустил эту функцию отправки, я мог бы быть перенаправлен на страницу и получить уведомление, установленное сессией.
Итак, что я могу сделать с этим?

Ответы [ 2 ]

3 голосов
/ 28 февраля 2012

сообщение об ошибке включено на сервере?если это так, проверьте наличие какого-либо уведомления или предупреждения.или попробуйте

error_reporting("E_ERROR");

Невозможно изменить заголовок, прежде чем обычно происходит какое-либо перенаправление заголовка, если перед ним что-то отражено или напечатано, или даже какой-либо HTML или простой текст.

надеюсь, это поможет

0 голосов
/ 27 февраля 2012

используйте $this->email->clear() после отправки вашей почты.это инициализирует все переменные электронной почты в пустое состояние.

...