Ir ao conteúdo
  • Cadastre-se
fabiano aladin

Erro no php

Recommended Posts

Fiz esse código para enviar dados de um formulário para o email , mas só recebo as mensagens e não  os outros dados, onde foi q errei . Pesquisei e não encontrei o erro .
 

<?php

//criando váriaveis dos campos
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

//definindo informações
$para = 'meu e-mail';
$cabecalho  =  "MIME-Version: 1.0" . "\r\n".
                        "Content-type: text/html; charset=utf-8" . "\r\n".
                        "From: meuemail" . "\r\n".
                         "Reply-To: meusite";

//definindo a mensagem
$corpoDoEmail  = $nome ."<br />";
$corpoDoEmail .= $email ."<br />";
$corpoDoEmail .= $fone ."<br />";
$corpoDoEmail .= $assunto ."<br /><br />";
$corpoDoEmail .= $mensagem ;                    

$status = mail($para,$assunto,$corpoDoEmail,$cabecalho);

if($status){
    echo "<script> alert('Mensagem enviada com sucesso!');</script>";
}

else{
    echo "<script> alert('Erro ao enviar mensagem!!!'); </script>";
}
echo "<script> window.location.href = 'index.html'; </script>";
   
?>

 

Editado por fabiano aladin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se está recebendo dados do formulário.

Acrescente um echo na frente de cada variável que recebe os dados do formulário e comente do $para até o último echo.

 

Se mostrar seus dados em tela, quer dizer que o erro está na função mail() ou no conteúdo do $cabecalho.

 

Por sugestão, evite de usar essa função... use uma classe específica como o phpmailer. Existe diversos tópicos aqui no setor sobre o phpmailer!

 

PS: poste o seu formulário também.  As vezes o erro é só simplesmente de digitação ao nomear os atributos "name"!

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, dif disse:

Verifique se está recebendo dados do formulário.

Acrescente um echo na frente de cada variável que recebe os dados do formulário e comente do $para até o último echo.

 

Se mostrar seus dados em tela, quer dizer que o erro está na função mail() ou no conteúdo do $cabecalho.

 

Por sugestão, evite de usar essa função... use uma classe específica como o phpmailer. Existe diversos tópicos aqui no setor sobre o phpmailer!

 

PS: poste o seu formulário também.  As vezes o erro é só simplesmente de digitação ao nomear os atributos "name"!

Eu refiz o código php e faltou só receber os dados das variáveis.vou colocar código php :

<?php

//criando váriaveis dos campos
$data = date("d/m/Y - H:i");
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['fone'];
$assuntof = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

//definindo informações
$para = 'meu email';
$assunto = 'meusite';

$corpoDoEmail  = "
<b>Nome : </b>     $nome  <br />
<b>Email : </b>    $email <br />
<b>Telefone : </b> $fone  <br />
<b>Assunto : </b>  $assuntof  <br />
<b>Data : </b>     $data  <br /><br />
<b>Mensagem : </b> $mensagem  

";

$cabecalho = 'MIME-Version: 1.0' . "\r\n".
	         'Content-type: text/html; charset=utf-8' . "\r\n".
             'From: meuemail' . "\r\n".
             'Reply-To: meusite';

                   

$status = mail($para,$assunto,$corpoDoEmail,$cabecalho);

if($status){
    echo "<script> alert('Mensagem enviada com sucesso!');</script>";
}

else{
    echo "<script> alert('Erro ao enviar mensagem!!!'); </script>";
}
echo "<script> window.location.href = 'index.html'; </script>";
   
?>

agora o código do formulário:

<form id="formulario" action="envia.php" method="post" onsubmit="return validar(this)">
					<table class="tabela">
						<tr>
							<td>
								<fieldset>
									<legend>Entre em contato conosco:</legend>
									<p>
										<label for="nome">Nome:</label><br />
										<input type="text" id="nome" tabindex="1" />
									</p>
									<p>
										<label for="email">Email:</label><br /> 
										<input type="text" id="email" tabindex="2" />                                
									</p>
									<p>
										<label for="fone">Telefone:</label><br />
										<input type="text" id="fone" tabindex="3" />
									</p>
									<p>
										<label for="assunto">Assunto:</label><br />
										<input type="text" id="assunto" tabindex="3" />
									</p>
									<p>
										<label for="mensagem">Mensagem:</label><br />
										<textarea name="mensagem" cols="20" rows="8" id="mensagem" tabindex="5"></textarea>
									</p>
									<p>
										<input name="reseta" type="reset" value="Limpar" class="botao" /> 
										<span class="direita">                                          										
                                        	<input name="envia" type="submit" value="Enviar" class="botao" />                                      
										</span>                                   
									</p>
								</fieldset> 

agora como apareceu no email(não pegou  as variáveis):

mensagem.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

@fabiano aladin como seu nome é bonito vou me intrometer rs. 

 

Que nem o @dif falor erro de digitação, você passa o dados do input usando  a tag -  name="email", no arquivo PHP não recebe via ID.

 

obs.: você so atribuiu o campo "name" na mensagem por isso ela foi recebida.

 

 

<input type="text"  name="nome" />
<input type="text"  name="fone" />
<input type="text"  name="assunto"  />
<input type="text"  name="mensagem" />

PHP

// php

$nome = $_POST['nome']; // mesmo nome dado ao name do input
$fone = $_POST['fone']; // mesmo nome dado ao name do input
$assunto = $_POST['assunto']; // mesmo nome dado ao name do input
$msg = $_POST['mensagem']; // mesmo nome dado ao name do input

 

Editado por FabianoS
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 minutos atrás, FabianoS disse:

você passa o dados do input usando  a tag -  name="email", no arquivo PHP não recebe via ID.

Só uma correção. a tag é o que compõe um elemento.  Ou seja, <input> onde input é a descrição do conteúdo  que o elemento terá.

O "name" é um atributo. Em outras palavras name é uma propriedade do elemento do tipo input formado a partir da tag <input>

:thumbsup:

 

No mais, é isso. 

@FabianoS  matou a charada.

@fabiano aladin basta acrescentar os tais atributos! :) 

Editado por dif
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkkkk pior, que eu posto e fico editando quando eu acho erro, @dif kkk e a nova tag name q saiu poh. :huh: , nem sei da onde saiu isso.

Editado por FabianoS

Compartilhar este post


Link para o post
Compartilhar em outros sites
39 minutos atrás, FabianoS disse:

@fabiano aladin como seu nome é bonito vou me intrometer rs. 

 

Que nem o @dif falor erro de digitação, você passa o dados do input usando  a tag -  name="email", no arquivo PHP não recebe via ID.

 

obs.: você so atribuiu o campo "name" na mensagem por isso ela foi recebida.

 

 


<input type="text"  name="nome" />
<input type="text"  name="fone" />
<input type="text"  name="assunto"  />
<input type="text"  name="mensagem" />

PHP


// php

$nome = $_POST['nome']; // mesmo nome dado ao name do input
$fone = $_POST['fone']; // mesmo nome dado ao name do input
$assunto = $_POST['assunto']; // mesmo nome dado ao name do input
$msg = $_POST['mensagem']; // mesmo nome dado ao name do input

 

Pior q matou mesmo   , só o telefone q não aparece ainda , tô aqui procurando o erro !porém todos os outros campos estão aparecendo!Obrigado!Acabei de achar o erro do telefone !!! Obrigado  galera!!

 

adicionado 2 minutos depois
2 horas atrás, dif disse:

Verifique se está recebendo dados do formulário.

Acrescente um echo na frente de cada variável que recebe os dados do formulário e comente do $para até o último echo.

 

Se mostrar seus dados em tela, quer dizer que o erro está na função mail() ou no conteúdo do $cabecalho.

 

Por sugestão, evite de usar essa função... use uma classe específica como o phpmailer. Existe diversos tópicos aqui no setor sobre o phpmailer!

 

PS: poste o seu formulário também.  As vezes o erro é só simplesmente de digitação ao nomear os atributos "name"!

Tô olhando essa função phpmailer , mas  não tem risco de segurança  , por colocar a senha ?

eu também vou fazer a parte do captcha.

Editado por fabiano aladin

Compartilhar este post


Link para o post
Compartilhar em outros sites
Citação

Pior q matou mesmo   , só o telefone q não aparece ainda , tô aqui procurando o erro !porém todos os outros campos estão aparecendo!Obrigado!


 @fabiano aladin Poste como ficou seu código. 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
agora, FabianoS disse:


 @fabiano aladin Poste como ficou seu código. 

 

Achei o erro coloquei $ telefone = fone e depois coloquei $fone , obrigado pela ajuda ,no meio da sonolência consegui achar , já a parte de name e id , não sabia  e/ou nem  me lembrava  q php não passa por id .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×