• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vsempre

Problema com formulario...

5 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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...

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora