Ir ao conteúdo
  • Cadastre-se

lakesidepark

Membro Júnior
  • Posts

    13
  • Cadastrado em

  • Última visita

posts postados por lakesidepark

  1. A não ser que seja erro do Xampp. O que não é de duvidar.

    adicionado 45 minutos depois

    Resolvido, alterei meu form, agora a URL fica limpa após o envio.

     

    <form  name="contatc" id="form_envio" enctype='application/x-www-form-urlencoded' method='POST'>
    									<div>
    										<div class="row">
    											<div class="6u 12u$(mobile)">
    												<input type="text" name="name" placeholder="Name" autocomplete="off" />
    											</div>
    											<div class="6u$ 12u$(mobile)">
    												<input type="text" name="email" placeholder="Email" autocomplete="off" />
    											</div>
    											<div class="12u$">
    												<input type="text" name="subject" placeholder="Subject" autocomplete="off"/>
    											</div>
    											<div class="12u$">
    												<textarea name="message" placeholder="Message" rows="8"></textarea>
    											</div>
    											<div class="12u$">
    												<input type="button" id="btn_enviar" value="Enviar" onClick="this.form.submit(); this.disabled=true; this.value='Enviando…'; " /><!-- type="submit" -->
    											</div>
    										</div>
    									</div>
    								</form>

     

  2. Mas eu estou enviando por POST

     

    //Quando o documento estiver pronto
    		$(document).ready(function(){
      
    			/*
    				variável que armazena a identidicação do botão
    				Se usar class troque para $(".btn_enviar")
    			*/
    			var btn = $("#btn_enviar");
        
    			//Atribuimos o evento de click no botão
    			btn.on("click", function(){
    			var dados = $("#form_envio").serialize();
          
    			//chama a função ajax()
    			$.ajax({
    				url: "sendMail.php",
    				datatype: "HTML",
    				method: "POST",
    				data: dados
    				}).done(function(retorno){
               alert(retorno);
    		   
    			}).fail(function(retorno)
    			{
    				//alert(retorno+" dd");
    				alert("Email enviado com sucesso.");				
    			}); 
         
    			});
    		});

     

  3. DIf, bom dia, depois de muito dor de cabeça consegui resolver todos meus problemas, melhorei minha validação de email, e  enxuguei minha classe sendMail.php.

     

    Uma dúvida, após a alert com a mensagem  como faço para limpar ; a URL  para não ficar assim:

    http://index.html?name=JJL&email=petero%40gmail.com&subject=Teste&message=Teste#contact

    Ou redir para outra pagina eu tentei adicionar, window.location.href=""; após o alert mas não acontece nada.

     

    Att

  4. Então, mas para validar o campo e-mail, e os demais para que não possa ser enviado, e-mail digitado incorretamente, e algum campo faltante, o posso chamar em uma função dentro do meu PHP, validar e executar o

     if(!$mail->send()) 

    ou seria mais fácil, fazer isso no Ajax/JQuery.

     

  5. Dif, esculpa essa trabalheira que eu to te dando.

     

    Vamos lá;

     

    Meu Form 

     

    <form  name="contatc" id="form_envio" accept-charset="ISO-8859-1" enctype="multipart/form-data"> <!--action="contactMail.php    " -->
    									<div>
    										<div class="row">
    											<div class="6u 12u$(mobile)">
    												<input type="text" name="name" placeholder="Name" autocomplete="off" />
    											</div>
    											<div class="6u$ 12u$(mobile)">
    												<input type="text" name="email" placeholder="Email" autocomplete="off" />
    											</div>
    											<div class="12u$">
    												<input type="text" name="subject" placeholder="Subject" autocomplete="off"/>
    											</div>
    											<div class="12u$">
    												<textarea name="message" placeholder="Message" rows="8"></textarea>
    											</div>
    											<div class="12u$">
    												<input type="button" id="btn_enviar" value="Enviar" onClick="this.form.submit(); this.disabled=true; this.value='Enviando…'; " />
    											</div>
    										</div>
    									</div>
    								</form>

    Meu JQuery /Ajax 

     

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    		<script>
    		//Quando o documento estiver pronto
    		$(document).ready(function(){
      
    			/*
    				variável que armazena a identidicação do botão
    				Se usar class troque para $(".btn_enviar")
    			*/
    			var btn = $("#btn_enviar");
        
    			//Atribuimos o evento de click no botão
    			btn.on("click", function(){
    			var dados = $("#form_envio").serialize();
          
    			//chama a função ajax()
    			$.ajax({
    				url: "contactMail.php",
    				datatype: "HTML",
    				method: "POST",
    				data: dados
    				}).done(function(retorno){
               alert(retorno);
    			}).fail(function(retorno){
    				alert(retorno); 
    			}); 
         
    			});
    		});
    		</script>


    Até aqui sem problemas está enviando normalmente e os e-mails estão chegando.

     

    O problema que está aparecendo para mim, é o retorno da contactMail.php, e o retorno está caindo no .fail e o alert não está aparecendo algumas menssagens, está assim:  [ Object Object ];

    <?php
    
    // Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer
    require_once("servletPHP/class.phpmailer.php");
    require_once("servletPHP/class.smtp.php");   
    
    
    define('GUSER', 'contato.fast***@gmail.com');	// <-- Insira aqui o seu GMail
    define('GPWD', '***');		// <-- Insira aqui a senha do seu GMail
    
    
    function smtpmailer()
    {
    	
    	global $error; 
    	global $htmlbody;
    	
    	
    	$para="comercial@****.com.br";
    	
    	
    	$mail = new PHPMailer(true);
    	$mail->IsSMTP();			// Ativar SMTP
    	$mail->SMTPDebug = 1;		// Debugar: 1 = erros e mensagens, 2 = mensagens apenas
    	$mail->SMTPAuth = true;		// Autenticação ativada
    	$mail->SMTPSecure = 'ssl';	// SSL REQUERIDO pelo GMail
    	$mail->Host = 'smtp.gmail.com';	// SMTP utilizado
    	$mail->Port = 465;  		// A porta 587 deverá estar aberta em seu servidor
    	$mail->Username = GUSER;
    	$mail->Password = GPWD;
        $mail->CharSet = "UTF-8";
    							date_default_timezone_set('America/Sao_Paulo');
    	$mail->Subject = "Contato Via Website ".date("d/m/y")."  ".date("h:i");
    	$mail->SetFrom($_POST['email'],$_POST['name']);
    	$mail->AddReplyTo($_POST['email'], $_POST['name']);	
    	$mail->Sender=$_POST['email'];
    	$mail->AddAddress($para);	
    	$mail->isHTML(true);
    	$mail->CharSet = 'ISO-8859-1';	
    		
        
        $htmlbody="";
    	$htmlbody.='<table>';
    	$htmlbody.='<tr>';
    	$htmlbody.='<td width="80px">&nbsp;</td>';
    	$htmlbody.=' <td width="84%" align="left" valign="top"><p><font style="font-family: Georgia, Times, serif; color:#010101; font-size:24px"><strong><em>Contato Website,</em></strong></font><br/>';
    	$htmlbody.='</p>';
    	$htmlbody.='<p><font style="font-family: Verdana, Geneva, sans-serif; color:#666766; font-size:13px; line-height:21px">Nome:'.$_POST['name'].'</font></p>';
    	$htmlbody.='<p><font style="font-family: Verdana, Geneva, sans-serif; color:#666766; font-size:13px; line-height:21px">Email:'.$_POST['email'].'</font></p>';
    	$htmlbody.=' <p><font style="font-family: Verdana, Geneva, sans-serif; color:#666766; font-size:13px; line-height:21px">Assunto:'.$_POST['subject'].'</font></p>';
    	$htmlbody.='<p><font style="font-family: Georgia,  Times, serif; color: #010101; font-size: 16px"><strong><em>Enviou a seguinte mensagem,</em></strong></font></p>';
    	$htmlbody.='<p><font style="font-family: Verdana, Geneva, sans-serif; color:#666766; font-size:13px; line-height:21px"> ......'.$_POST['message'].'<br/>';
    	$htmlbody.='<br/>';
    	$htmlbody.='</font></p></td>';
    	$htmlbody.='<td width="8%">&nbsp;</td>';
    	$htmlbody.='</tr>';
    	$htmlbody.='<tr>';
    	$htmlbody.='<td>&nbsp;</td>';
    	$htmlbody.='</tr>';
    	$htmlbody.='</table>';
    	
    	
        $mail->MsgHTML($htmlbody);	
    	
    	if(!$mail->Send()) 
    	{
    		$error = 'Mail error: '.$mail->ErrorInfo; 
    		return false;
    	} 
    	else 
    	{
    		$error = 'Mensagem enviada!';
    		return true;
    	}	
    }
    
    
    function validaemail()
    {
    	$_mail=$_POST['email'];
    	//verifica se e-mail esta no formato correto de escrita
    	if (!ereg('^([a-zA-Z0-9.-])*([@])([a-z0-9]).([a-z]{2,3})',$_mail))
    	{
    		$mensagem='E-mail Invalido!';
    		return $mensagem;
    	}
    	else 
    	{
    		//Valida o dominio
    		$dominio=explode('@',$_mail);
    		if(!checkdnsrr($dominio[1],'A'))
    		{
    			$mensagem='E-mail Invalido!';
    			return $mensagem;
    		}	
    		else 
    		{
    			return true; // Retorno true para indicar que o e-mail é valido	
    		} 
    	}
    }
    
    
    
    	
    	if(validaemail()=='1' or validaemail()==1)
    	{				
    		if(smtpmailer()==1)
        	{
    			echo "Obrigado! Foi enviado corretamente";
    			exit();
        	}
        	else
    		{ 	
    			echo "Houve um erro ao enviar o e-mail";
    			exit();
    		}    	   
    	}
    	else 
    	{
    		echo "O E-mail informado é invalido.";		
    	}	
    
    
    
    ?>

     

    contactMail.7z

  6. Dif, bom dia

     

     só para eu tirar uma dúvida para uso do Jquery meu form deixa de ser assim:

    <form  name="contatc" enctype="multipart/form-data"  action="contactMail.php" accept-charset="ISO-8859-1" method="post">
    									<div>

    e fica assim

     

    <form  name="contatc" enctype="multipart/form-data"  accept-charset="ISO-8859-1">
    							

    Uma dúvida que me surgiu, antes eu validava campos como e-mail, nome, no PHP, vale a pena manter no PHP, sendo as funções de validação as primeiras a serem chamadas?

    function validaemail()
    {
    	$_mail=$_POST['email'];
    	//verifica se e-mail esta no formato correto de escrita
    	if (!ereg('^([a-zA-Z0-9.-])*([@])([a-z0-9]).([a-z]{2,3})',$_mail))
    	{
    		$mensagem='E-mail Invalido!';
    		return $mensagem;
    	}
    	else
    	{
    		//Valida o dominio
    		$dominio=explode('@',$_mail);
    		if(!checkdnsrr($dominio[1],'A'))
    		{
    			$mensagem='E-mail Invalido!';
    			return $mensagem;
    		}
    		else
    		{return true;} // Retorno true para indicar que o e-mail é valido
    	}
    }
    
    
    	//echo "OK POST EXISTE L104";
    	if(validaemail()=='1' or validaemail()==1)
    	{	
    		
    		if(smtpmailer()==1)
        	{	
    			echo "Obrigado! Foi enviado corretamente";			
        	}
        	else
    		{ 	
    			echo "Erro no envio do e-mail!";			
    		}	
    	     
    	}
    	else if(!validaemail())
    	{
    		echo "O E-mail informado é invalido.";			
    	}	
    }

     

     

    no meu PHP eu chamo a phpmailer

     require("servletPHP/class.phpmailer.php");

    Abs

     

     

  7. por exemplo na pagina index.html, o form de contato envia via POST para a contactMail.php

     

    a contactMail.php, iria retornar somente um código tipo, via javascript ou PHP, ou Jquery

    index.html#contact?code=112

    Na pagina index iria executar alguma coisa tipo Javascript, Jquery

    if $code==112
         {
                 window.alert("Email Enviado"):
          }

     

    adicionado 13 minutos depois
    function queryString(parameter) {  
                  var loc = location.search.substring(1, location.search.length);   
                  var param_value = false;   
                  var params = loc.split("&");   
                  for (i=0; i<params.length;i++) {   
                      param_name = params[i].substring(0,params[i].indexOf('='));   
                      if (param_name == parameter) {                                          
                          param_value = params[i].substring(params[i].indexOf('=')+1)   
                      }   
                  }   
                  if (param_value) {   
                      return param_value;   
                  }   
                  else {   
                      return false;   
                  }   
            }
    
    var variavel = queryString("minhaVariavel");

    Sorte minha achei uma parte do que preciso em um backup antigo, agora no html5 onde a navegação é de id ex: #produtos ou #contato, 

     

    quando no PHP eu executar Header ou Echo

    window.location.replace='index.html#contato?code=112'

    qual comando fica melhor para eu chamar a queryString, no Onload ou onselect

     

     

    Fluxo -> index.html#contato -> contactMail.php -> index.html#contato ---> Alert

  8. DiF, eu não me lembro o nome, mas ha um tempo atras eu fiz uma pagina tipo portfólio com HTML5, onde o formulário de contato, ele envia para uma pagina PHP e ela devolve para a mesma pagina mas com dados na URL; tipo http://index.html#contact ?resp=. O que eu não estou me lembrando é como faço esse tipo de retorno, depois que meu HD deu pau to tentando recriar minhas lib de programação. Abs

  9. Olá pessoal queria tirar uma dúvida de algo que eu não me lembro.

     

    Por exemplo eu tenho uma pagina html com um form de contato, nesse form eu chamo uma pagina php para fazer o envio.

    <form  name="contatc" enctype="multipart/form-data"  action="contactMail.php" accept-charset="ISO-8859-1" method="post">

    Até o envio do email não é o problema, eu gostaria de saber como faço para dar um altert somente ao voltar para a pagina com o form de contato

    Eu quero evitar usar

    echo '<script>alert("XXXXX");</script>';

    . Obs essa pagina que tem o form, não possui código ativo algum (PHP, Java,Ruby) somente Javascript.

     

    No caso são dois alerts um de tiver Ok e um se der erro.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!