Jump to content


chlins

Member Since 11/12/2006
Offline Last Active 06/09/2015, 18:47
-----

Topics I've Started

Problemas Com Script Para Terminar Meu Site

20/01/2013, 09:17

Pessoal,

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" /> //funciona

Có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>

IPB Skin By Virteq