[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;
}
}
}
}