Jump to content

Problema com formulario...


vsempre

Recommended Posts

Boas,

Utilizo o seguinte código para enviar um email através de um formulario.

<?
if (!$_POST){
?> 
<form action="contactos.php" method="post">
<input type="hidden" name="required" value="nome,email,assunto,empresa,texto">
<table border="0" cellspading="0" cellspacing="0" width="100%" class=news-text>
<tr>
<td width="50%"><b>Nome:</b></td>
<td><input type="text" name="nome"> <br></td></tr>
<tr>
<td width="50%"><b>E-Mail:</b></td>
<td><input type="text" name="email"></td></tr>
<tr>
<td width="50%"><b>Empresa:</b></td>
<td><input type="text" name="empresa"></td></tr>
<tr>
<td width="50%"><b>Assunto:</b></td>
<td><select name='assunto'>
<OPTION SELECTED>Escolher</option>
<OPTION VALUE='Geral'>Geral</option>
<OPTION VALUE='Noticias'>Noticias</option>
<OPTION VALUE='Turismo'>Turismo</option>
<OPTION VALUE='Publicidade'>Publicidade</option>
</select></tr></td>
<tr>
<td width="50%" valign="top"><b>Texto:</b></td>
<td><textarea cols="30" rows="5" name="texto"></textarea></tr></td>
<tr>
<td width="50%"></td>
<td><input type="submit" class="tabela" value="Enviar"></td></tr>
</table><p>
</form>
<?
}else{
   //Estou a receber o formulário, componho o corpo
   $corpo = "Formulário enviado\n";
   $corpo .= "Nome: " . $_POST["nome"] . "\n";
   $corpo .= "Email: " . $_POST["email"] . "\n";
   $corpo .= "Empresa: " . $_POST["empresa"] . "\n";
   $corpo .= "Assunto: " . $_POST["assunto"] . "\n";
   $corpo .= "Texto: " . $_POST["texto"] . "\n";

   //envio o correio...
   mail("vsempre@tugamail.com","Formulário recebido",$corpo);

   //agradeço pelo envio
   echo "Obrigado por preencher o formulário. Em breve obterá uma resposta nossa.";
}
?>

A mensagem de "sucesso" é dado, no entanto, não recebo o email... Alguém me poderá ajudar?

Desde já agradeço a vossa atenção.

Link to comment
Share on other sites

Assim de repente faz isto:

  
    if(mail("vsempre@tugamail.com","Formulário recebido",$corpo)){
         //agradeço pelo envio
         echo "Obrigado por preencher o formulário. Em breve obterá uma resposta nossa.";
   }else{
         echo "Falhou no envio..";
   }

A função mail do php retorna verdadeiro se envia ou falso se nao consegue enviar... ve o que diz agora...

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Boas,

Utilizo o seguinte código para enviar um email através de um formulario.

<?
if (!$_POST){
?> 
<form action="contactos.php" method="post">
<input type="hidden" name="required" value="nome,email,assunto,empresa,texto">
<table border="0" cellspading="0" cellspacing="0" width="100%" class=news-text>
<tr>
<td width="50%"><b>Nome:</b></td>
<td><input type="text" name="nome"> <br></td></tr>
<tr>
<td width="50%"><b>E-Mail:</b></td>
<td><input type="text" name="email"></td></tr>
<tr>
<td width="50%"><b>Empresa:</b></td>
<td><input type="text" name="empresa"></td></tr>
<tr>
<td width="50%"><b>Assunto:</b></td>
<td><select name='assunto'>
<OPTION SELECTED>Escolher</option>
<OPTION VALUE='Geral'>Geral</option>
<OPTION VALUE='Noticias'>Noticias</option>
<OPTION VALUE='Turismo'>Turismo</option>
<OPTION VALUE='Publicidade'>Publicidade</option>
</select></tr></td>
<tr>
<td width="50%" valign="top"><b>Texto:</b></td>
<td><textarea cols="30" rows="5" name="texto"></textarea></tr></td>
<tr>
<td width="50%"></td>
<td><input type="submit" class="tabela" value="Enviar"></td></tr>
</table><p>
</form>
<?
}else{
  //Estou a receber o formulário, componho o corpo
  $corpo = "Formulário enviado\n";
  $corpo .= "Nome: " . $_POST["nome"] . "\n";
  $corpo .= "Email: " . $_POST["email"] . "\n";
  $corpo .= "Empresa: " . $_POST["empresa"] . "\n";
  $corpo .= "Assunto: " . $_POST["assunto"] . "\n";
  $corpo .= "Texto: " . $_POST["texto"] . "\n";

  //envio o correio...
  mail("vsempre@tugamail.com","Formulário recebido",$corpo);

  //agradeço pelo envio
  echo "Obrigado por preencher o formulário. Em breve obterá uma resposta nossa.";
}
?>

A mensagem de "sucesso" é dado, no entanto, não recebo o email... Alguém me poderá ajudar?

Desde já agradeço a vossa atenção.

Se em vez de...

$corpo = "Formulário enviado\n"; 

$corpo .= "Nome: " . $_POST["nome"] . "\n"; 

$corpo .= "Email: " . $_POST["email"] . "\n";

//e por aí fora

usares...

$corpo = "Formulário enviado\n";

foreach($_POST as $post => $valor){

if ($post == "enviar"){ continue;}

$corpo .= ucfirst($post).": $valor\n";

}

Poupas um trabalhão e muitas dores de cabeça e dá sempre certo seja qual for o numero ou genero dos campos submetidos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.