Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Apenas Eu

Erro no email automático

Recommended Posts

Olá!

Minha intensão era tentar resolver esse problema sozinho visto que esse foi o primeiro programa PHP que usei. Mas eu tentei incluir ele no meu sistema novo de cadastro.

 

Pois bem eu tentei usar o programa de email automatico que normalmente uso em meu site e coloquei no sistema de cadastro para que o usuario receba a confirmação que ele foi cadastrado.

 

Eu tentei adaptar, mas ainda não estou achando o problema. Acho que é algo bem simples.

cadastro:

<?php
// inclui o arquivo de configuração do sistema
include "Config/config_sistema.php";

// recebe dados do formulario
$senha = $_POST['senha'];
$rep_senha = $_POST['rep_senha'];
$nome = htmlspecialchars($_POST['nome']);
$login = htmlspecialchars($_POST['login']);
$telefone = $_POST['telefone'];
$celular = $_POST['celular'];
$---o = $_POST['---o'];
$dia = $_POST['dia'];
$mes = $_POST['mes'];
$ano = $_POST['ano'];
$endereco = $_POST['endereco'];
$numero = $_POST['numero'];
$bairro = $_POST['bairro'];
$estado = $_POST['estado'];
$cidade = $_POST['cidade'];
$cep = $_POST['cep'];
$pergunta = htmlspecialchars($_POST['pergunta']);
$resposta = htmlspecialchars($_POST['resposta']);

// verifica se o usuario digitou o login
if($login == "") {
	echo "Digite seu login!";
	exit;
} else {
	// se o usuario digitou o login ele verifica
	// se esta disponivel
	$consulta = mysql_query("select * from dados_usuarios where Login = '$login'");
	$linha = mysql_num_rows($consulta);
	if($linha != 0) {
		echo "Este e-mail já está cadastrado em nosso sistema!<br>
			  Se houver dúvidas entre em contato com nosso suporte";
		exit;
	}
}

// verifica se o usuario digitou a senha
if($senha == "") {
	echo "Digite sua senha!";
	exit;
} else {
	// se o usuario digitou a senha
	// vamos comparar com a contra senha
	if($senha != $rep_senha) {
		echo "Senha invalida!";
		exit;
	}
}

// verifica se o usuario digitou o nome
if($nome == "") {
	echo "Digite seu nome!";
	exit;
}

// verifica o ---o
$arr_---o = array('Masculino','Feminino');
if(!in_array($---o,$arr_---o)) {
	echo "Escolha o seu ---o!";
	exit;
}

// verifica a data de nascimento do usuario
// verifica o dia
if($dia == "") {
	echo "Escolha o dia que você nasceu!";
	exit;
} else {
	// verifica o mes
	if($mes == "") {
		echo "Escolha o mês que você nasceu!";
		exit;
	} else {
		// verifica o ano
		if($ano == "") {
			echo "Escolha o ano que você nasceu!";
			exit;
		} else {
			// se o Dia, o Mês e o Ano passaram
			// vamos juntalos numa so varivel
			$data_nasc = $dia."/".$mes."/".$ano;
		}
	}
}

// verifica o estado
if($estado == "") {
	echo "Digite o estado onde você mora!";
	exit;
}

// verifica a cidade
if($cidade == "") {
	echo "Digite a cidade onde você mora!";
	exit;
}

// verifica o cep
if($cep == "") {
	echo "Digite o CEP de onde você mora!";
	exit;
}

// verifica a pergunta secreta
if($pergunta == "") {
	echo "Digite sua pergunta secreta!";
	exit;
}

// verifica a resposta secreta
if($resposta == "") {
	echo "Digite sua resposta secreta!";
	exit;
}

// faz consulta no banco para inserir os dados do usuario
$sql = "insert into dados_usuarios (ID,Senha,Nome,Login,telefone,celular,---o,DataNasc,endereco,numero,bairro,Estado,Cidade,Cep,Pergunta,Resposta) values ('','$senha','$nome','$login','$telefone','$celular','$---o','$data_nasc','$endereco','$numero','$bairro','$estado','$cidade','$cep','$pergunta','$resposta')";
$consulta = mysql_query($sql);

// verifica se o usuario foi cadastrado
if($consulta) {
	echo "<font color=green><b>
		  Você foi cadastrado com sucesso!<br>
		  Click <a href=index.php>aqui</a> para efetuar o login.
		  </font></b>";
	exit;
} else {
	echo "Não foi possivel efetuar o seu cadastro<br>
		  tente mais tarde pode ser um problema no servido!<br>
		  Click <a href=login.php>aqui</a> para ir ate a home page do sistema.";
	exit;
}
>?

do email

<?php
$nome = $_POST['nome'];
  $email=$_POST["email"];
  $empresa=$_POST["empresa"];
  $cep=$_POST["cep"];
  $telefone=$_POST["telefone"];
  $cidade=$_POST["cidade"];
  $estados=$_POST["estados"];
// Verifica se O Campo nome tá preenchido
  if($nome=="")
{  
echo"<script>alert('o campo NOME nao pode ficar em branco');window.history.go(-1);</script>";
exit;
}
//aqui verifica se o campo e-mail esta vazio ou não , se estiver manda mensagem de erro dentro do parenteses
  if($email=="")
{
echo"<script>alert('Para que possamos entrar em contato com voce, o campo e-mail nao pode ficar em branco');window.history.go(-1);</script>";
exit;
} 
//aqui verifica se o campo do e-mail foi preenchido com um e-mail de verdade
if(strlen($email)<8 || substr_count($email, "@")!=1 || substr_count($email, ".")==0)
{
echo"<script>alert('Por favor, volte e verifique se o e-mail foi digitado.');window.history.go(-1);</script>";
exit;
}
  //aqui recebe o assunto da mensagem
  $assunto=$_POST["assunto"];
 //aqu a mensagem escrita
  $messagem=$_POST["mensagem"];
 //aqui o IP do computador de quem manda
  $ip=$_SERVER['REMOTE_ADDR'];
    //aqui os dados para os destinatário do formulari no caso seu sei
//nome do site
  $site="DCS Desenvolvimento";
//email do site
  $emaildosite="danilo@dcsdesenvolvimento.com.br";
  //aqui o corpo da mensagem para exibição no corpo do e-mail
  $m="
<html>
  <body>
  <b>Nome:</b> $nome<br>
  <b>E-mail:</b> $email<br>
  <b>Empresa:</b> $empresa<br>
  <b>Fone:</b> $telefone<br>
  <b>Cidade:</b> $cidade<br>
  <b>Estado:</b> $estados<br>
  <b>Assunto:</b> $assunto<br>
  <b>Mensagem:</b> $messagem<br>
  <b>IP:</b> $ip
  </body>
  </html>
    ";
  //aqui o envio do e-mail para o webmaster 
$mensa = "$m\n";
$headersa = "From: \"$nome\" <$email>\r\n"; 
$headersa .= "Content-type: text/html; ";
//aqui o e-mail automático para quem escreveu
mail($site . '<' . $emaildosite . '>'," $site - Assunto: $assunto",$mensa,$headersa); 
 //mensagem para quem escreveu
$informacoes2="Olá, $nome! </br> Recebemos sua solicitação e assim que possível iremos responder. </br> Obrigado :) ";
 $mens = "$informacoes2\n";
$headers = "From: \"$site\" <$emaildosite>\r\n"; 
$headers .= "Content-type: text/html"; 

mail($nome . '<' . $email . '>',"$site - Confirmando que recebemos seu e-mail...",$mens,$headers); 
echo"<html><meta http-equiv=refresh content=0;URL=confirmacao.php></html>";
?>

Bom o do email eu coloquei o original. Unica coisa que achei que tinha que fazer, era, trocar ali o $email por $login visto que novo sistema é este campo que recebe o email do cadastrado.

 

Portanto, eu fiz assim:

	<?php
// inclui o arquivo de configuração do sistema
include "Config/config_sistema.php";

// recebe dados do formulario
$senha = $_POST['senha'];
$rep_senha = $_POST['rep_senha'];
$nome = htmlspecialchars($_POST['nome']);
$login = htmlspecialchars($_POST['login']);
$telefone = $_POST['telefone'];
$celular = $_POST['celular'];
$---o = $_POST['---o'];
$dia = $_POST['dia'];
$mes = $_POST['mes'];
$ano = $_POST['ano'];
$endereco = $_POST['endereco'];
$numero = $_POST['numero'];
$bairro = $_POST['bairro'];
$estado = $_POST['estado'];
$cidade = $_POST['cidade'];
$cep = $_POST['cep'];
$pergunta = htmlspecialchars($_POST['pergunta']);
$resposta = htmlspecialchars($_POST['resposta']);

// verifica se o usuario digitou o login
if($login == "") {
	echo "Digite seu login!";
	exit;
} else {
	// se o usuario digitou o login ele verifica
	// se esta disponivel
	$consulta = mysql_query("select * from dados_usuarios where Login = '$login'");
	$linha = mysql_num_rows($consulta);
	if($linha != 0) {
		echo "Este e-mail já está cadastrado em nosso sistema!<br>
			  Se houver dúvidas entre em contato com nosso suporte";
		exit;
	}
}

// verifica se o usuario digitou a senha
if($senha == "") {
	echo "Digite sua senha!";
	exit;
} else {
	// se o usuario digitou a senha
	// vamos comparar com a contra senha
	if($senha != $rep_senha) {
		echo "Senha invalida!";
		exit;
	}
}

// verifica se o usuario digitou o nome
if($nome == "") {
	echo "Digite seu nome!";
	exit;
}

// verifica o ---o
$arr_---o = array('Masculino','Feminino');
if(!in_array($---o,$arr_---o)) {
	echo "Escolha o seu ---o!";
	exit;
}

// verifica a data de nascimento do usuario
// verifica o dia
if($dia == "") {
	echo "Escolha o dia que você nasceu!";
	exit;
} else {
	// verifica o mes
	if($mes == "") {
		echo "Escolha o mês que você nasceu!";
		exit;
	} else {
		// verifica o ano
		if($ano == "") {
			echo "Escolha o ano que você nasceu!";
			exit;
		} else {
			// se o Dia, o Mês e o Ano passaram
			// vamos juntalos numa so varivel
			$data_nasc = $dia."/".$mes."/".$ano;
		}
	}
}

// verifica o estado
if($estado == "") {
	echo "Digite o estado onde você mora!";
	exit;
}

// verifica a cidade
if($cidade == "") {
	echo "Digite a cidade onde você mora!";
	exit;
}

// verifica o cep
if($cep == "") {
	echo "Digite o CEP de onde você mora!";
	exit;
}

// verifica a pergunta secreta
if($pergunta == "") {
	echo "Digite sua pergunta secreta!";
	exit;
}

// verifica a resposta secreta
if($resposta == "") {
	echo "Digite sua resposta secreta!";
	exit;
}

// faz consulta no banco para inserir os dados do usuario
$sql = "insert into dados_usuarios (ID,Senha,Nome,Login,telefone,celular,---o,DataNasc,endereco,numero,bairro,Estado,Cidade,Cep,Pergunta,Resposta) values ('','$senha','$nome','$login','$telefone','$celular','$---o','$data_nasc','$endereco','$numero','$bairro','$estado','$cidade','$cep','$pergunta','$resposta')";
$consulta = mysql_query($sql);

// verifica se o usuario foi cadastrado
if($consulta) {
	echo "<font color=green><b>
		  Você foi cadastrado com sucesso!<br>
		  Click <a href=index.php>aqui</a> para efetuar o login.
		  </font></b>";
	exit;
} else {
	echo "Não foi possivel efetuar o seu cadastro<br>
		  tente mais tarde pode ser um problema no servido!<br>
		  Click <a href=login.php>aqui</a> para ir ate a home page do sistema.";
	exit;
}



  //aqui recebe o assunto da mensagem
  $assunto=$_POST["assunto"];
 //aqu a mensagem escrita
  $messagem=$_POST["mensagem"];
 //aqui o IP do computador de quem manda
  $ip=$_SERVER['REMOTE_ADDR'];
    //aqui os dados para os destinatário do formulari no caso seu sei
//nome do site
  $site="DCS Desenvolvimento";
//email do site
  $emaildosite="danilo@dcsdesenvolvimento.com.br";
  //aqui o corpo da mensagem para exibição no corpo do e-mail
  $m="
<html>
  <body>
  <b>Nome:</b> $nome<br>
  <b>E-mail:</b> $login<br>
  <b>Empresa:</b> $empresa<br>
  <b>Fone:</b> $telefone<br>
  <b>Cidade:</b> $cidade<br>
  <b>Estado:</b> $estados<br>
  <b>Assunto:</b> $assunto<br>
  <b>Mensagem:</b> $messagem<br>
  <b>IP:</b> $ip
  </body>
  </html>
    ";
  //aqui o envio do e-mail para o webmaster 
$mensa = "$m\n";
$headersa = "From: \"$nome\" <$login>\r\n"; 
$headersa .= "Content-type: text/html; ";
//aqui o e-mail automático para quem escreveu
mail($site . '<' . $emaildosite . '>'," $site - Assunto: $assunto",$mensa,$headersa); 
 //mensagem para quem escreveu
$informacoes2="Olá, $nome! </br> Recebemos sua solicitação e assim que possível iremos responder. </br> Obrigado :) ";
 $mens = "$informacoes2\n";
$headers = "From: \"$site\" <$emaildosite>\r\n"; 
$headers .= "Content-type: text/html"; 

mail($nome . '<' . $login . '>',"$site - Confirmando que recebemos seu e-mail...",$mens,$headers); 
echo"<html><meta http-equiv=refresh content=0;URL=confirmacao.php></html>";


?>

Onde será que está meu erro? =\

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hehehehe! Eu preciso muito estudar a lógica da programação, Eu apenas consigo só fazer o que vejo, daí eu não consigo explicar direito,,,

 

Na realidade eu não fiz, ambos peguei prontos. Eu sei editar eles apenas :) . Ah mas qualquer coisa deixa para lá...

 

O que eu tentei fazer nele foi incluir o cod. de envio de email de outro formulario para este programa de cadastro (para este ultimo cod. que postei), daí eu coloquei após a parte que "verifica se o usuario foi cadastrado", seria a partir da linha 162.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode deixar o trecho de envio de email em outro arquivo, desde que você dê um include/require nele dentro deste if:

 

 

if($consulta) {
echo "<font color=green><b>
    Você foi cadastrado com sucesso!<br>
    Click <a href=index.php>aqui</a> para efetuar o login.
    </font></b>";
 
    require "enviar_emai.php";

    exit;
// ... restante do código

 

A diferença é que você usará as variáveis já criadas logo abaixo do comentário //recebe dados do formulario, onde você busca os valores do formulário. Ou seja, não é necessário pegar essas variáveis de novo no arquivo envia_email.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaiz eu ainda não pude testar a sua dica, mas eu estava pensando aqui:

Será que o problema de não enviar o email, é porque ainda estou usando um localhost e não enviei ainda o sistema para a web?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função mail() do PHP em localhost não irá funcionar mesmo.

Os servidores externos rejeitam cabeçalhos com localhost e cabeçalhos não formatados corretamente. Tente usar SMTP. Te indico de começo o PHPMailer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser isso mesmo então né? Eu me matando aqui e fazendo o pessoal quebrar a cabeça. Eu lembrei desse detalhe por acaso ontem. Eu uso o Xampps

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Eu consegui entender o motivo no meu cód não funcionar para o envio de email neste caso.

 

Neste cód. o sistema faz uma consulta se o cadastro foi feito e depois direciona a uma página com o aviso que o cadastro foi realizado.

 

Depois disso eu implementei a função mail().

 

Eu simplesmente fiz isso:

 //aqui recebe o assunto da mensagem
  $assunto=$_POST["assunto"];
 //aqu a mensagem escrita
  $messagem=$_POST["mensagem"];
 //aqui o IP do computador de quem manda
  $ip=$_SERVER['REMOTE_ADDR'];
    //aqui os dados para os destinatário do formulari no caso seu sei
//nome do site
  $site="DCS Desenvolvimento";
//email do site
  $emaildosite="danilo@dcsdesenvolvimento.com.br";
  //aqui o corpo da mensagem para exibição no corpo do e-mail
  $m="
MENSAGEM
    ";
  //aqui o envio do e-mail para o webmaster 
$mensa = "$m\n";
$headersa = "From: \"$nome\" <$login>\r\n"; 
$headersa .= "Content-type: text/html; ";
//aqui o e-mail automático para quem escreveu
mail($site . '<' . $emaildosite . '>'," $site - Assunto: $assunto",$mensa,$headersa); 
 //mensagem para quem escreveu
$informacoes2="Olá, $nome! </br> Recebemos sua solicitação e assim que possível iremos responder. </br> Obrigado :) ";
 $mens = "$informacoes2\n";
$headers = "From: \"$site\" <$emaildosite>\r\n"; 
$headers .= "Content-type: text/html"; 

mail($nome . '<' . $login . '>',"$site - Confirmando que recebemos seu e-mail...",$mens,$headers); 
echo"<html><meta http-equiv=refresh content=0;URL=confirmacao.php></html>";


// verifica se o usuario foi cadastrado
if($consulta) {
	echo "<font color=green><b>
		  Você foi cadastrado com sucesso!<br>
		  Click <a href=index.php>aqui</a> para efetuar o login.
		  </font></b>";
	exit;
} else {
	echo "Não foi possivel efetuar o seu cadastro<br>
		  tente mais tarde pode ser um problema no servido!<br>
		  Click <a href=login.php>aqui</a> para ir ate a home page do sistema.";
	exit;
}



 

Mas no caso eu usei um outro cód mais simples que refiz por base em um livro sobre php :)

 

Valeuuu por todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.