Bruno Dulcetti



Arquivos:

Categorias:

  • Amizade:

  • Artigos

  • Links:

    O meu, o seu, o nosso espaço!

    » Formulario em PHP

    Estava eu tranquilo, quando Leandro Cunha, camaradassa meu me perguntou sobre como fazer um formulário via PHP. Como estava no meebo e odeio esses IM via browser, achei melhor postar algo no Blog, com isso, posso ajudar possíveis pessoas que tenham dúvidas sobre o assunto.

    É muito simples sua implementação, pra quem já conhece PHP legal, já mexe, isso é mole, mas pro pessoal que tah começando agora, tah no básico ainda, vale ler (eu acho :P)

    Primeira Parte – HTML

    Primeiramente, lógico, vou postar um código html de um formulário (lembrando que não coloquei nenhum estilo pro formulário, isso fica com vocês ok? 😉 ) ver exemplo online:
    <form action="enviar_formulario.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>

    Como podemos ver, um simples formulário, muito feio, sem estilo nenhum. Caso queiram modificar, fiquem à vontade, coloquem fieldset, legend, labels, etc… Vou ver se em breve eu crio um tutorial de como criar um formulário estilizado e nos padrões 😉

    Creio que não precise comentar sobre o código acima, todos que estiverem lendo devem conhecer html (pelo menos espero), mas darei uma comentada:

    <form action="enviar_formulario.php" method="post">

    Nesta linha, criei a tag form, essencial, e nela coloquei o atributo action que recebe o a página onde o formulário enviará as informações dispostas nos campos do formulário. A página utilizada foi a enviar_formulario.php, mas o nome fica a critério de vocês, contanto que mude também quando criarem-na ok? 😉

    Nome:<br /> <input type=”text” name=”nome” />

    Um texto Nome:, indicando que o próximo campo é para colocar o nome, um pulo de linha, para o campo vir abaixo do texto e o input que cria o campo de texto chamado nome, que vai ser enviado pelo formulário e o arquivo php receberá como variável.

    E-mail:<br /> <input type=”text” name=”email” />

    Idem ao item anterior, só mudando para E-mail.

    Mensagem:<br /> <textarea name=”mensagem” cols=”32″ rows=”8″></textarea><br />

    Semelhante aos anteriores, mas ao invés de input, é um textarea, para receber mais informações, pois geralmente mensagens são maiores. E nele, têm 32 colunas de largura e 8 linhas de altura.

    <input type=”submit” value=”Enviar” />

    Um input com o botão de envio do formulário. É através dele que o formulário será enviado para a página php setada no action da tag form.

    Espero que tenham entendido essa parte, acho que deu pra dar uma explicadinha legalzinha sobre cada parte. Agora vamos cair dentro do arquivo php.

    Arquivo enviar_formulario.php

    <?php
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $mensagem = $_POST['mensagem'];

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

    $mensagem = "$msg";
    $remetente = "$email";
    $destinatario = "bruno@brunodulcetti.com";
    $assunto = "Tutorial de Formulário BrunoDulcetti.com";
    $headers = "From: ".$remetente."\nContent-type: text/html"; # o 'text/html' é o tipo mime da mensagem
    if(!mail($destinatario,$assunto,$mensagem,$headers)){
    print "falha no envio da mensagem";
    } else {
    echo "<script>window.location.href='obrigado.htm'</script>";
    }
    ?>

    Bom, vamos lá, agora explicarei as linhas desse arquivo:

    <?php

    Linha de abertura de código php, sem isso, nada de php funcionando 😀

    $nome = $_POST[‘nome’];

    Essa linha, a variavel nome é criada e ela recebe o campo de texto nome, que foi enviado via método post pelo formulário, lembra? method=”post no form, agora lembra não é? 😉

    $email = $_POST[‘email’];

    Igual ao nome, mas mudando a variável para email e o $_POST[”] recebe o campo email enviado pelo formulário.

    $mensagem = $_POST[‘mensagem’];

    Igual aos anteriores, mas mudando a variável para mensagem e o $_POST[”] recebe o campo mensagem enviado pelo formulário.

    $msg = "<font face=’Verdana’ size=’1′><b>Nome:</b> \t$nome</font><br>";

    Aqui é criada uma variável msg, onde ela recebe a variável nome, que declaramos e demos o valor à ela anteriormente. A grande sacada e diferença, foi que eu usei uma tag font com a fonte Verdana como fonte padrão e tamanho 1. Fiz somente para o formulário ser enviado com mais estilo, ficar um pouco mais bonito, senão fica aquela fonte padrão feia. Mas isso fica a critério de vocês. E coloquei um br no final, para pular de linha.

    $msg .= "<font face=’Verdana’ size=’1′><b>E-mail:</b> \t$email</font><br>";

    Idêntico ao anterior, mudando somente para variável email e a variável msg recebe o valor anterior mais esse, não sobrescrevendo o valor anterior.

    $msg .= "<font face=’Verdana’ size=’1′><b>Mensagem:</b> \t$mensagem</font>";

    Idêntico aos anteriores, mudando somente para variável mensagem e a variável msg recebe os valores anteriores mais esse, não sobrescrevendo o valores anteriores.

    $mensagem = "$msg";

    Variável mensagem recebendo todo o conteúdo da variável msg.

    $remetente = "$email";

    Variável remetente recebendo a variavel email, que contém o email preenchido no formulário, que aparecerá como o remetente no webmail.

    $destinatario = "bruno@brunodulcetti.com";

    Aqui temos uma variável destinatario, que é onde você colocará o email para onde o conteúdo será enviado.

    $assunto = "Tutorial de Formulário BrunoDulcetti.com";

    Variável assunto, que receberá um assunto especificado por você que aparecerá como título, assunto do email que chegará para você.

    $headers = "From: ".$remetente."\nContent-type: text/html"; # o ‘text/html’ é o tipo mime da mensagem

    Variável headers que será enviado junto com o email, dizendo o mime da mensagem.

    if(!mail($destinatario,$assunto,$mensagem,$headers)){

    Eu poderia pular essa parte, não colocar um if, mas coloquei, para caso dê algum problema no envio, apareça um aviso. Neste if, temos um mail, que é a variável do php de envio de emails feitos por ele. Em ordem, colocamos as variáveis destinatario que é seu email, assunto que é o título, assunto do email, mensagem que é o conteúdo do email enviado pelo formulário e o headers. Neste if ele diz resumidamente “Se (o email naum foi enviado) fazer”. O símbolo de ! significa negação no php e o { significa o início das funções dentro do if.

    print "falha no envio da mensagem";

    Como disse acima, caso o email não seja enviado, apareçe esta mensagem de erro, avisando que houve uma falha.

    } else {

    Aqui temos o fechamento do if, que é simbolizado pelo } e temos o else, que significa “então” e um símbolo de { indicando que haverá outra função ou funções.

    echo "<script>window.location.href=’obrigado.htm'</script>";

    Aqui nós temos a função que redireciona para uma nova página, de obrigado, que vocês podem modificá-la como quiserem, tanto nome, layout, etc. Havendo mudança no nome, modifiquem aqui também para que não haja erro 404.

    }

    Fechamento do else, fechamento definitivo do laço if.

    No geral, traduzindo, seria:
    “Se (o email naum foi enviado) faça”
    “falha no envio”
    “senão (se o email foi enviado corretamente) faça”
    “redirecionamento e obrigado”
    “fim do if”

    ?>

    Aqui temos o fechamento do php.

    Temos esse script funcionando na seção contato do meu site.

    Espero que tenham gostado e que tenha sido de fácil compreensão. Aos avançados, desculpem, mas preferi colocar algo básico agora, pro pessoal que tá começando… Em breve posto algo mais avançado ok?

    Aquele abraço galera.

    [ 25/jan/2006 às 12:10hrs ] [ Por Bruno Dulcetti ] Comentários 237 Comentários |

    Categorias: Artigos,Tecnologia

    237 Comentários no Post "Formulario em PHP"

    Postar no Rec 6

    1. fudido mirmao !

    2. Olá, tenho necessidade de colocar alguns dados dentro deste campo que agora estou escrevendo como:

      cpf:
      cnpj:
      nome:

      e por ai vai, será que voces podem me ajudar? ficarei muito grato, Antonio Carlos

    3. Sê não criar um banco de dados do php no WampServer, o script não tem como funcionar, falta concatenar a liguagem na variável ($msg ) “\nContent-type = text/html”; para ser lido no email que receberá a mensagem.
      Lá no site ” http://www.videoaulas.pro.br tem video aulas do Fábio Godoi “, que ensina bem detalhado, de como, construir um banco de dados em php, e ” muito mais “, tem aulas de como criar um sistema de login e senha, cadastro de usuario, confirmação de cadastro e recuperação de senha, e etc!.
      O Script do bruno é bom, para quem tem conhecimentos em php é moleza, mas, para quem é leigo, aconselho que compre um curso de php, eu comprei e não arrependi.

    4. Excelente!!! Simples. Melhor do que isso só dois disso!!!! Obrigado. Quebrando um galhão.

    5. […] quem estiver procurando um bom tutorial de formulário, eu indico o blog do Bruno Dulcetti. Bem […]

    6. Em primeiro lugar gostaria de agradecer ao Bruno por ter disponibilizado tudo mastigadinho rsrsrsrs
      Em segundo, para quem está tendo problemas de receber o e-mail devolutivo “em branco”, tire as aspas:

      $nome = utf8_decode($_POST[nome]);
      $email = utf8_decode($_POST[email]);
      $mensagem = utf8_decode($_POST[mensagem]);

      Para mim funcionou perfeitamente (já tinha quebrado a cabeça, pois também recebia o tal e-mail fantasma).

      Abs

    7. Por favor,
      não entendi nada
      poderia enviar um video de como fazer?
      Se puder, obrigado

    8. Olá !! Seria possivel você postar um versão de um formulário Enviar para um amigo e que neste formulário tenha campos para mais de um amigo…tipo uns cinco amigos??
      Estou estudando isto, já tenho um só que com apenas um campo.!!
      Valeu..

    9. vai quase perco meu site porque disse que a pagina do meu siti não sitia ai eu tive que entrar em um trem la doido e tira

    10. Caramba muito bom cara.. foi o primeiro tutorial q eu usei de formulário que funcionou.. valeu msm!!

    11. Criei o formulario, deu certo PERFEITO!
      mudei algumas coisas, como faço para ter um controle, tipo gerar um código para cada formularioi enviado por email?

    12. cara muito da hora isso ai, mas como eu usaria num host que é windows e não linux?

    13. Aee Bruno muito bom esse tuto, estava precisando de algo para clarea a minha mente, por estar começando agora estou meio que perdido, Com esse tuto deu uma clareada…

    14. Olá Bruno

      Vc falou que iria postar uma 2ª parte acessivel, só gostaria de saber se este form php, é ou não acessivel

      Thanks
      Ana
      webdeveloper

    15. Meuu show de bola ! mtooo bom mesmo ! isso ajudou eu pra carambaaa !!

    16. Daniel Cristiano Soares da Silva | 04/jul/2011 às 16:44

      Pra mim ta dando erro:

      Warning: Failed to Connect in c:\apache\htdocs\form\enviar_formulario.php on line 15
      falha no envio da mensagem

      testei varios scripts similares e da o mesmo erro, queria saber o que tem q fazer no apache/php para que funcione. Será que alguem pode me ajudar? Me mande um e-mail para dancss2005@gmail.com

    17. Simples, Quero Saber se Esse Tipo de Formulario Tabém Pode ser Usado em um WebFãSite que é o meu Caso e se Puder, Como eu Faço para o Destinatario Variar de Acordo com o E-mail que a Pessoa Colocar na Barra >>> $email = $_POST[‘email’]; <<< Por Favor Responda-me

    18. Olá amigos, estou com um pequeno problema. criei um formulario para recolha de dados mas ao fazer o teste (preencho o formulário e clico em enviar) verifico que não funciona porque aparece a seguinte mensagem:
      405 Method Not Allowed
      The HTTP verb used to access this page is not allowed.
      Web Server at estrelasdehombres.com

      Ajudem-me por favor,

      Muito obrigado

    19. Olá Bruno!

      Realmente seu script é legal. Simples e funcional.

      Apenas enfrentei um problema q não consegui ainda resolver, em relação ao conteúdo do e-mail.
      Copiei o código corretamente, e ele funciona perfeito. Já está online inclusive no meu site. Só q ao receber o e-mail enviado pelo form, apenas aparecem os nomes dos campos, mas não o conteúdo deles.
      Gostaria de saber alguma solução.

      Obrigado.

    20. Consegui resolver o problema! Nada como testar, testar e fuçar…
      Eu usei um outro código html para o form, e aí, testei algumas alterações e nada.
      Então fui ler o seu código html e, jogo dos 7 erros, descobri a diferença, coisa boba…
      Ao invés de usar eu uso . Mais ou menos essa diferença, mas meu código tem coisas a mais… então, alterei de “id” para “name” e vói la! Resolvido.
      Portanto, se alguém enfrenta o mesmo problema, eis uma possibilidade de resolução. Creio q essa nomenclatura “name” possa complicar um pouquinho o uso de CSS, mas, assim q eu descobrir como alterar isso no php, eu posto a informação.
      Valeu pelo código simples, limpo e funcional. Agora vou adicionar algumas funcionalidaes e vamos melhorando aí.

      Quem quiser ver o formulário funcionando perfeito, inclusive com página “enviado com sucesso” personalizada, pode acessar http://www.eversonstudio.com

      Obrigado!

      Abraço a todos.

    21. muito obrigado, me ajudou muito!
      ja tinha um feito todo em php mas queria trasnferir par aum html

    22. joao carlos | 19/nov/2011 às 10:51

      não funciona aparece falha no envio, mas eu fiz tudo como vc passoou e não vai. AJUDA DEPRESSA!

    23. vc sabe como escrever em php na parte de envio de email a estrutura SELECT do html quando vc pode escolher muitas opções segurando o CTRL ?
      eu já consigo q seja enviado para o arquivo PHP mas no momento de enviar por email como faço se tenho muitas opções selecionadas no SELECT ?

    24. Rapaz, muito bom esse tutorial, bem esclarecido! Valeu!!

    25. cara tem como fazer um video

    26. Olá Bruno.

      Gostaria de parabenizá-lo pelo site e por esta aula sobre formulário.
      Sempre editei meus próprios sites, baixando templates por aí.

      Porém, algo que nunca consegui foi fazer o formulário funcionar e desta vez deu certo, obrigado!!!

      Bom, tenho uma pergunta: O Email enviado pelo formulário chega, digamos, truncado. A Acenteação não chega, mas chegam códigos, como resolver isso???

      Abraços
      João Paulo

    27. o maluko onde eu coloko arquivo: enviar formulario php ????
      eu envie isso por email pra mim msm soq naum da certo oq eu fasso??

    28. Aqui funcionou perfeitamente, realmente ficou muito bom, obrigado.
      Não é SPAM, apenas estou mostrando uma nova ferramenta que talvez vocês possam usar para divulgar algo ou agregar um grupo com as mesmas idéias.
      Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode começar agora e fazer algo diferente para um novo fim.

      http://www.phaco.com.br/painel

    29. Muito bom o tutorial! queria saber como faço para quando o usuario preencher o formulario seja liberado um download para ele! é q estou fazendo um site para o pessoal baixar editais, e queriamos registra a pessoa q esta baixando o edital. cadastro simples! ele vai ser identificado cnpj ou cpf

    30. Otimo site, parabéns.

    31. Envie uma mensagem para as pessoas que voce ama
      Enviamos sua telemensagem para celular ou qualquer telefone fixo do Brasil.
      Conheça a telemensagem personalizada. Basta escolher o fundo musical, uma locução pronta ou gravar a própria voz. Faça tudo isto Online e ouça na hora o resultado de sua criação!

      18/02/2016

    32. Thanks for sharing your thoughts on meta_keyword. Regards

    33. The material is extremely interesting.|

    34. This writing gives a clear idea for the new visitors how to blog. Well done!

    35. Keep it up! You have a great sense of humor.

    36. I discovered your site by luck Top Twitter pros would agree. Guess I will just book mark this write up. magnificent blogs. I am bored to death at work so I decided to browse your posts on my iphone during lunch break.

    37. Our community is better because you are in it. Your writing style reminds me of my dad. I was reading your website and my stupid little sister threw a mug all over my brand new lap top!

    Tá esperando o quê? Comenta logo.

    
    Copyright © 2005 Bruno Dulcetti | Creative Commons
    Bruno Dulcetti atuante na área de desenvolvimento web / webdesign e colaborador na área de webstandards pelo Blog BrunoDulcetti.com - blog. Atuante na área desde 2000. Atuando na cidade de Niterói/RJ - Brasil. E-mail: bruno@brunodulcetti.com