[Resolvido] Coletando dados de vários inputs e textarea e enviando por email

Started by Triplo X, 22 de January , 2009, 12:09:24 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Triplo X

Olá a todos.

Um cliente meu me pediu que criasse um formulário contendo vários campos, onde ao clicar em enviar, a página PHP deve processar se todos foram preenchidos. Se não foram, mostra um alerta em javascript e depois voltar para a página anterior. Se foram preenchidos, ela envia tudo por e-mail: nome, ip do visitante, email para resposta, assunto, que terá que receber vários campos do form e listar em cada linha dentro do e-mail.

Bom, um formulário assim eu não sei fazer, então peço uma ajudinha aqui.

Segue o código que estou usando:

faleconosco.php
<?php

// Coloque abaixo o seu email (que recebera os contatos)

$seu_email "email@hotmail.com";



//

// So mexa abaixo caso realmente seja necessario,

// pois podera causar o mau funcionamento do script !!!

//



// Verifica se o formulario foi postado

if (isset($_POST['envia'])) {

    
// Variaveis do formulario

    
$nome $_POST['nome'];

    
$email $_POST['email'];

    
$mensagem $_POST['msg'];



    
// Funcao que verifica se o email e valido

    
function check_email($email_to_check) {

        if (
eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,3}$"$email_to_check)) return true;

        else return 
false;

    }



    
// Checa os campos do formulario

    
$erros 0;

    if (!
check_email($email) && $email != "") {

        
$emailinvalido true;

        
$erros ++;

    }

    if (
$nome == ""$erros ++;

    if (
$email == ""$erros ++;

    if (
$mensagem == ""$erros ++;



    
// Nao havendo erros, envia a mensagem

    
if ($erros == 0) {

        
$subject "Contato";

        
$msg "Formulário de contato :::\n\n";

        
$msg .= "Enviado por: $nome <$email> (" $_SERVER['REMOTE_ADDR'] . ")\n";

        
$msg .= "Mensagem enviada:\n$mensagem";

        
$mailheaders "From: $nome <$email>\n";

        
$mailheaders .= "Reply-To: $email";

        
mail($seu_email$subject$msg$mailheaders);

    }

}

?>


<html>
<head>
<title>site</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style media="screen">
@import "default.css";
</style>

<!--[if lte IE 6]>
<style type="text/css" media="screen">
@import "ie6.css";
</style>
<![endif]-->

<!--[if IE 7]>
<style type="text/css" media="screen">
@import "ie7.css";
</style>
<![endif]-->


<script type="text/javascript" src="flashobject.js"></script>

</head>

<body>
<div align="right" id="navbar">
<a href="index.htm">
<img src="images/home.jpg" width="18" height="16" border="0">
</a>
<a href="index.html">
<span class="style10">HOME</span>
</a>
<span class="style11">.....</span>
<a href="" target="_blank">
<img src="images/webmail.jpg" width="18" height="11" border="0">
</a>
<span class="style10">
<a href="18c932" target="_blank">WEB MAIL</a>
</span>
<span class="style11">..</span>
  </div>

<div id="geral">

<img src="banners/topo.jpg" width="800" height="200" alt=""  title="" />

<div id="color_id" >
<a href="http://www.dreamingsoft.com/123flashmenu/index.htm">123 Flash Menu</a> Placeholder.</div><script type="text/javascript">
var fo = new FlashObject("menu.swf","color","800","180","6","#FFFFFF");
    fo.addParam("menu","false");
    fo.addParam("quality","best");
    fo.addParam("scale","noscale");
    fo.addParam("salign","LT");
    fo.addParam("wmode", "transparent");
    fo.write("color_id");
</script>

<?php

// Verifica se o formulario foi postado e se nao ha erros

if (isset($_POST['envia']) && $erros == 0) {

    
$nome explode(" "$nome);

?>


<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">

  <tr>

    <td><div align="left"><font color="#FF0000" face="Arial" size="3">Obrigado por entrar em contato <?php echo $nome[0]; ?>...<br>Retornaremos o mais breve possàvel.</font></div></td>

  </tr>

  <tr>

    <td> </td>

  </tr>

  <tr>

    <td> </td>

  </tr>

  <tr>

    <td><div align="center"><br><br><font size="2" face="Arial">Seu IP foi registrado como: <? echo $_SERVER['REMOTE_ADDR']; ?></font></div></td>

  </tr>

  <tr>

    <td> </td>

  </tr>

  <tr>

    <td> </td>

  </tr>

  <tr>

    <td> </td>
  </tr>

  <tr>

    <td><div align="center"><meta HTTP-EQUIV="REFRESH" content="5; url=http://www.koderzone.com/sitedocara/"></div></td>

  </tr>

</table>

<?php

}

else {

    
// Imprimir erros

    
if (isset($erros) && $erros != && !isset($emailinvalido)) {
     echo 
"<script language=\"JavaScript\">alert('É necessário preencher todos os campos para prosseguir !');</script>\n";
     echo(
"<script language='javascript'>history.black(-1);</script>\n");
      }
      
    if (isset(
$emailinvalido)) {
    echo 
"<script language=\"JavaScript\">alert('O e-Mail $email não parece ser válido ! Por favor verifique.');</script>\n";
    echo(
"<script language='javascript'>history.black(-1);</script>\n");
    }

?>


<div class="title">
Entre em contato conosco através do formulário abaixo</div>
<div class="msg">
<form id="contatocad" method="post" action="faleconosco.php">
<label>Seu nome:</label>
<input type="text" name="nome" id="Nome" size="25" maxlength="30">
<br />
<label>Seu email:</label>
<input type="text" name="email" id="Email" size="25" maxlength="30">
<br />
<label>Mensagem:</label><br />
<textarea name="msg" cols="37" rows="5" id="Mensagem"></textarea>
<br />
<input type="reset" value="Limpar"> <input type="submit" name="envia" value="Enviar">
</div>

<br>

<div class="mail">
Contato: <font color="blue"><a href="mailto:email@hotmail.com">email@hotmail.com</a></font>
</div>

<?php

}

?>


</div>

<div id="rodape">
Copyright © 2009 site
Produzido por: <a href="http://www.koderzone.com">Koder Zone</a>
</div>

</body>
</html>


Este formulário não pede SMTP nem senha, pois poderemos utilizar e-mails como
o da hotmail ou outros em que não teremos acesso a estas informações.

Agradeço a ajuda.

[]s
Não me venha dizer que é melhor que alguém que eu te espanco!
Todos não passamos de ratinhos que morrerão um dia como todos os outros...

Reeves

o que eu faria:

usaria o framework do dreamweaver chamado sprite para fazer um form com verificações em ajax...
ai enviaria ao .php ou .jsp

seu php já envia isso que vc quer?
se vc tiver o dreamweaver cs ou superior instalado me fale que ajudo.


Hug's



* Edit by Triplox: Modifiquei o título da mensagem.
  °vº   NÃO USE DROGAS,
/(_)\  USE GNU/LINUX
^ ^

Triplo X

Não tenho =/

vou procurar pra baixar agora ;)


* Edit:

Pronto!

Estou com o DreamweaverCS4 aqui.

E o próximo passo?

[]s
Não me venha dizer que é melhor que alguém que eu te espanco!
Todos não passamos de ratinhos que morrerão um dia como todos os outros...

Triplo X

Resolvido!

Obrigado ae @ Reeves

Quando puder, postarei um tuto utilizando o Dreamweaver cs*

[]s


* Edit:

Dreamweaver - Validação de formulário em AJAX

Formail - Juntando dados de vários campos e enviando tudo por e-mail

Até!
Não me venha dizer que é melhor que alguém que eu te espanco!
Todos não passamos de ratinhos que morrerão um dia como todos os outros...