1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Ajuda] Como fazer um formulario de contacto?

Discussão em 'Web Development' iniciada por Celso Azevedo, 15 de Outubro de 2008. (Respostas: 21; Visualizações: 1174)

  1. Celso Azevedo

    Celso Azevedo I folded Myself

    Bem, é o seguinte:
    Tenho um site e queria colocar lá um formulário de contacto. Não queria depender de sites externos para fazer isso. Se possivel não queria nada em javascript. Quero que as mensagens vão para a minha caixa de email.
    Como posso fazer isso?

    Obrigado
     
    Última edição: 16 de Outubro de 2008
  2. silvino

    silvino Power Member

    Como assim ?

    Deves conseguir o que queres e mais alguma coisa com um formulário em html, a enviar os dados para um script php e a guardar os dados em mysql ou postgresql...

    Explica melhor o que queres...
     
  3. C0C45

    C0C45 Power Member

    Crias uma form em html:

    Código:
    
    <form action="email.php" method="post">
    Nome:<br /> <input type="text" name="nome" />
    E-mail:<br /> <input type="text" name="email" />
    Mensagem:<br /> <textarea name="mensagem" cols="32" rows="8"></textarea><br />
    <input type="submit" value="Enviar" />
    <form>
    
    
    Depois crias um ficheiro em php para ir buscar os dados a form e mandar para o teu mail:

    Código:
    <?php
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $mensagem = $_POST['mensagem'];
    
    $msg =  "<b>Nome:</b>    \t$nome<br>";
    $msg .= "<b>E-mail:</b>    \t$email<br>";
    $msg .= "<b>Mensagem:</b>    \t$mensagem";
    
    $mensagem = "$msg";
    $remetente = "$email";
    $destinatario = "[email protected]";
    $headers = "From: ".$remetente."\nContent-type: text/html";
    if(!mail($destinatario,$mensagem,$headers)){
    print "A mensagem não foi enviada";
    } else {
    echo "<script>alert "obrigado"</script>";
      }
    ?>
    
    Abraço
     
  4. Celso Azevedo

    Celso Azevedo I folded Myself

    C0C45,
    e da forma que indicaste não é preciso fazer o que o silvino diz?
     
  5. fil79

    fil79 Power Member

    a forma indicada é de envio de dados por mail..é isso que pretendes? não estás a ser nada especifico..
     
  6. Celso Azevedo

    Celso Azevedo I folded Myself

    Desculpa, mas não me tinha explicado bem.
    Quero um formulario de contacto para por no meu site e que essa mensagem vá para o meu mail.
    Obrigado.

    Já a gora, fiz como o C0C45 disse e aparece isto:
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home2/softmobi/public_html/site/email.php on line 17
     
  7. fil79

    fil79 Power Member

    corrige esta linha:

    echo "<script>alert "obrigado"</script>";

    para

    echo "<script>alert 'obrigado'</script>";
     
  8. Celso Azevedo

    Celso Azevedo I folded Myself

    Agora não deu nenhum erro e a mensagem chega ao meu mail. Problema e que fica tudo no assunto:
    <b>Nome:</b> celso<br><b>E-mail:</b> [email protected]<br><b>Mensagem:</b> Olá. Tudo bem?

    O Campo "Mensagem" não devia de ficar fora do ''assunto''?

    Edit:
    Recebo a mensagem assim:
    [​IMG]
     
    Última edição: 16 de Outubro de 2008
  9. C0C45

    C0C45 Power Member

    Eu tou no work não consigo testar para ver se funciona, e não tou a perceber esse problema de aparecer tudo no assunto.

    Abraço
     
  10. Celso Azevedo

    Celso Azevedo I folded Myself

    Lol... nem eu...
     
  11. C0C45

    C0C45 Power Member

    Quando chegar a casa experimento e posto ai tudo como deve de ser.

    Abraço
     
  12. tomassantos

    tomassantos To fold or to FOLD?

    Este serviço de enviar para o e-mail só é possível se o PHP estiver alojado num alojamento pago, não é?
     
  13. ups

    ups Power Member

    muda

    Código:
    if(!mail($destinatario,$mensagem,$headers)){
    
    para
    Código:
    if(!mail($destinatario,"Contacto via Web",$mensagem,$headers)){
     
  14. C0C45

    C0C45 Power Member

    Código:
    <?php
    
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $mensagem = $_POST['mensagem'];
    
    $msg = "<b>Nome:</b> \t$nome<br>";
    $msg .= "<font face='verdana'><b>E-mail:</b> \t$email</font><br>";
    $msg .= "<font face=’Verdana’><b>Mensagem:</b> \t$mensagem</font>";
    
    $mensagem = "$msg";
    $remetente = "$email";
    $destinatario = "bla";
    $assunto = "bla";
    $headers = "From: ".$remetente."\nContent-type: text/html";
    if(!mail($destinatario,$assunto,$mensagem,$headers)){
    print "falha no envio da mensagem";
    } else {
    echo "Obrigado";
    }
    ?>
    
    
    Assim já bomba.

    Abraço
     
  15. Celso Azevedo

    Celso Azevedo I folded Myself

    O meu funcionou pk tou num alojamento pago, mas e uma questao de tentar num alojamento gratis
     
  16. Celso Azevedo

    Celso Azevedo I folded Myself

    UPS e C0C45,
    Obrigado pela a ajuda. Agora está a funcionar, mas é possivel que depois a pagina "email.php" seja direccionada para uma pagina do site em vez de aparecer "obrigado"?
     
  17. C0C45

    C0C45 Power Member

    Fica

    em vez de

    Abraço
     
  18. C0C45

    C0C45 Power Member

    Não tem de ser pago, apenas tem de ter suporte php.

    Abraço
     
  19. Celso Azevedo

    Celso Azevedo I folded Myself

    C0C45,
    És o meu herói! Lol...
    Agora ta tudo a funcionar... menos o redireccionamento!

    Cumps
     
    Última edição: 19 de Outubro de 2008
  20. tomassantos

    tomassantos To fold or to FOLD?

    Então é assim:

    Um HTML:

    Código:
    <form action="email.php" method="post">
    Nome:<br /> <input type="text" name="nome" />
    E-mail:<br /> <input type="text" name="email" />
    Mensagem:<br /> <textarea name="mensagem" cols="32" rows="8"></textarea><br />
    <input type="submit" value="Enviar" />
    <form>
    Um um PHP com nome de email.php:

    PHP:
    <?php

    $nome 
    $_POST['nome'];
    $email $_POST['email'];
    $mensagem $_POST['mensagem'];

    $msg "<b>Nome:</b> \t$nome<br>";
    $msg .= "<font face='verdana'><b>E-mail:</b> \t$email</font><br>";
    $msg .= "<font face=’Verdana’><b>Mensagem:</b> \t$mensagem</font>";

    $mensagem "$msg";
    $remetente "$email";
    $destinatario "bla";
    $assunto "bla";
    $headers "From: ".$remetente."\nContent-type: text/html";
    if(!
    mail($destinatario,$assunto,$mensagem,$headers)){
    print 
    "falha no envio da mensagem";
    } else {
    echo 
    "Obrigado";
    }
    ?>
    Bomba assim? Onde se mete o mail para onde vai enviar?
     

Partilhar esta Página