Welcome Guest, Not a member yet? Register   Sign In
Send email - PHP Fatal Error
#1

[eluser]Halan Batista[/eluser]
Hello, how are you?

Well never had that kind of problem ...

I am using the following function that is returning the following error:

Code:
[Mon Oct 31 15:31:11 2011] [error] [client 189.98.232.161] PHP Fatal error:  Call to a member function from() on a non-object in local.test/system/application/app-vv/models/forms_model.php on line 80

From what I can see everything is correct, someone can help with this?

My code:

Controller =>

Code:
class Ajax_forms extends Controller
{
    public $data = array();
    public function __construct()
    {
        parent::__construct();
  
  //seta o layout padrão para o ajax
  $this->layout->setLayout('ajax');  
  
  //habilita variaveis por $_GET
        parse_str($_SERVER['QUERY_STRING'],$_GET);  
  
  //carrega model user
        $this->load->model('forms_model','forms');
  //carrega model funcoes
  $this->load->model('funcoes_model','funcoes');
  
  //helper email para validação
  $this->load->helper('email');
    }
    
      
//função para envio do formulário de contato
public function send_contato()
    {
  //verifica se está vindo via post
  if ( is_post() )
        {  

   //recupera dados do post
   $this->forms->nome = (string)$this->funcoes->antiInjection($this->input->post('nome'));
   $this->forms->email = (string)$this->funcoes->antiInjection($this->input->post('email'));
   $this->forms->assunto = (string)$this->funcoes->antiInjection($this->input->post('ddd'));
   $this->forms->mensagem = (string)$this->funcoes->antiInjection($this->input->post('mensagem'));
   $this->forms->boletim = (string)$this->funcoes->antiInjection($this->input->post('boletim'));
  
   //chama função para o envio do formulário
   $output = $this->forms->send_contact();
  
   //print retorno
   echo $output;
      
  }
}
}

Model =>

Code:
class forms_model extends Model {

/* Form Contact */
    public $nome;
    public $email;
    public $assunto;
    public $mensagem;
    public $boletim;

    
//envio formulário de contato
public function send_contact()
    {
  //verifica se está vindo via post
  if ( is_post() )
        {    
  
   //verificação se não está vazio e se é válido
   if(empty($this->nome) || empty($this->email) || empty($this->mensagem)) {
    
    return 'Preencha os campos obrigatórios.';
    exit;

   }
  
   //verifica se o e-mail é válido
   if(!valid_email($this->email)) {
    
    return 'O e-mail é inválido.';
    exit;

   }      
  
   //data do envio
   $data_now = date("d/m/Y H:i:s");
   //ip do usuário que efetuou o envio
   $ip_usuario = $_SERVER['REMOTE_ADDR'];    
  
   //efetua o envio do e-mail      
   $config = Array(
    'protocol'  => 'smtp',
    'smtp_host'  => 'ssl://smtp.googlemail.com',
    'smtp_port'  => 465,
    'smtp_user'  => '[email protected]',
    'smtp_pass'  => 'senha',
    'wordwrap'  => FALSE,
    'mailtype'  => 'html',
    'charset'  => 'utf-8',
    'newline'  => "\r\n"
    );
  
   $this->load->library('email', $config);        
  
   //e-mail para onde será enviado as mensagens
   $to = '[email protected]';
   //de
   $this->email->from('[email protected]', 'Site');
   //para
   $this->email->to($to);
   //copia
   $this->email->bcc('[email protected]');
   //assunto
   $this->email->subject('Contato - ' . $this->nome);
   //mensagem
   $this->email->message('<img src="'.site_url().'/imgs/logo_site.png"><br><br>
          <strong>Uma mensagem de contato foi enviada através do site!</strong><br><br>Informações do contato<br>
          <strong>Nome:</strong> '.$this->nome.'<br>
          <strong>E-mail:</strong> '.$this->email.'<br>
          <strong>Assunto:</strong> '.$this->assunto.'<br>
          <strong>Data do envio:</strong> '.$data_now.'<br>
          <strong>IP do Usuário:</strong> '.$ip_usuario.'<br>
          <strong>Mensagem:</strong> '.$this->mensagem.'<br>
          <br><br>'.NOME_SITE.'<br>{unwrap}<a href="'.site_url().'">'.site_url().'</a>{/unwrap}');
  
   //se tudo correr bem envia o form
   if($this->email->send()) {
    
    $output = 'Mensagem enviada com sucesso!';
    $output .= ("[removed]setTimeout(\"[removed].href='/contato'\", 4000); [removed]");
    
    return $output;
    exit;
    
   } else {
    
    return 'Ops! Houve algum erro.';
    exit;    
    
   }
      
      
  }
}
}




Theme © iAndrew 2016 - Forum software by © MyBB