Preciso terminar um site e o problema está no script para email e na mascara do telefone.
Os problemas:
Recebo o email normalmente, sou redirecionado para outra página, mas se volto com a seta, os dados do form permanece. O UNSET não está limpando os campos, após envio.
O remetente recebe um email informando que foi recebido sua mensagem, mas é preciso que somente a mensagem seja enviada e não todos os campos, nome, telefone, email... se retiro estes campos no SENDMAIL do código no form, dá erro.
Segue o código do script para email:
config.php
<?php function sendMail($nome,$email,$telefone,$mensagem,$remetente,$nomeRemetente,$destino,$nomeDestino){
require_once('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
//error_reporting(E_ALL);
//error_reporting(E_STRICT);
date_default_timezone_set('America/Sao_Paulo');
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'mail.dominio.com';
$mail->Port = '587';
$mail->Username = 'email@dominio.com';
$mail->Password = '*********';
$mail->From = $remetente; //remetente
$mail->FromName= $nomeRemetente; //remetente nome
$mail->IsHTML(true);
$mail->WordWrap = 50;
$mail->Subject = 'Fale conosco';
//$mail->Body = $mensagem;
$mail->CharSet="UTF-8";
$mail->AddAddress($destino,$nomeDestino);
$msg = " <b>Mensagem de:</b><br>";
$msg .= " <b>Nome:</b> $nome<br>";
$msg .= " <b>E-mail:</b> $email<br>";
$msg .= " <b>Telefone:</b>$telefone<br>";
$msg .= " <b>Mensagem:</b><br> $mensagem<br><br>";
$msg .= date("d/m/Y H:i");
$mail->Body = $msg;
if($mail->Send()){
$_SESSION['enviado'] = '<div class="alert">Mensagem enviada com sucesso!</div>';
//header('Location: http://www.site.com/obrigado.php'); Não funcionou.
}else{
echo '<div class="alert">Erro ao enviar mensagem?!</div>';
}
}?>
<META HTTP-EQUIV="Refresh" CONTENT="2;URL= obrigado.php" /> //funcionaCódigo na página do form:
<?php if(isset($_POST['enviar'])){
unset($_SESSION['enviado']);
$nome = strip_tags(trim($_POST['nome']));
$email = strip_tags(trim($_POST['email']));
$telefone = strip_tags(trim($_POST['telefone']));
$mensagem = strip_tags(trim($_POST['mensagem']));
$date = date("d/m/Y H:i");
if ($nome == '' || $email == '' || $telefone == '' || $mensagem == '') {
echo '<div class="alert">*Todos os campos são obrigatórios.</div>';
}elseif (!preg_match("/^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$/i", $email)) {
echo '<div class="alert">*Informe um email válido.</div>';
}else{
require('config.php');
sendMail($nome,$email,$telefone,$mensagem,$email,$nome,'brown@browncomunicacao.com','Aberzo');
sendMail($nome,$email,$telefone,'Obrigado por entrar em contato, responderemos em breve','contato@ig.com.br','SUPORTE',$email,$nome);
}
}
if(!empty($_SESSION['enviado'])){
echo $_SESSION['enviado'];
}
?>Outro problema é com o script da mascara de telefone.Se uso de forma simples, funciona perfeitamente
$(document).ready(function(){
$('#telefone').mask('(99) 9999-9999');
});
mas, se quero implantar já com a possibilidade do nono digito, não funciona.
Obs.: No FIDDLE, funciona perfeitamente.
<script>
$('#telefone')
.mask("(99) 9999?9-9999")
.live('focusout', function (event) {
var target, phone, element;
target = (event.currentTarget) ? event.currentTarget : event.srcElement;
phone = target.value.replace(/\D/g, '');
element = $(target);
element.unmask();
if(phone.length > 10) {
element.mask("(99) 9999?9-9999");
} else {
element.mask("(99) 9999-9999?9");
}
});
</script>



Postagens
Not Telling
