Para exemplificar, crie uma pasta chamada forms na raiz do seu Ambiente de Desenvolvimento. No meu caso, como estou usando o Wamp, meu diretório raiz é C:\wamp\www.
Agora, abra um Editor de Textos simples (Bloco de Notas por exemplo) e digite o código abaixo:
<html>
Salve o arquivo com o nome form-teste.html dentro da pasta forms.<head>
<title>Recebendo dados do Formulário</title>
</head><body>
</html><form method="post" action="receber-form.php">
Digite seu nome:<br />
<input type="text" name="nome" />
<input type="submit" value="Enviar" />
</form>
</body>Digite seu nome:<br />
<input type="text" name="nome" />
<input type="submit" value="Enviar" />
</form>
Repare que criamos um formulário que utiliza o método POST e que enviará dados para o arquivo receber-form.php que criaremos no mesmo diretório. O formulário possui apenas uma Caixa de Texto e um Botão de Envio. Observe também que o valor do parâmetro name da Caixa de Texto é nome.
Pra finalizar, abra um novo documento no Editor de Textos e digite o código abaixo:
<?php
$nome = $_POST['nome'];
echo "Olá " . $nome;
?>
Salve o arquivo com o nome receber-form.php na pasta forms.$nome = $_POST['nome'];
echo "Olá " . $nome;
?>
Entenda que, na linha 2, criamos uma variável com o nome $nome (poderia ser outro nome) que recebe o texto digitado na Caixa de Textos do formulário. Isso porque utilizamos $_POST['nome'] onde a chave nome corresponde ao parâmetro name da Caixa de Texto do formulário.
É bom lembrar que se substituirmos a segunda linha do Arquivo PHP por:
$nome = $_REQUEST['nome'];
Teríamos o mesmo resultado.Por fim, abra o navegador acesse o endereço: http://localhost/forms/form-teste.html
Observe o resultado:

Após preencher o nome e clicar em Enviar:

Obviamente que esse é um exemplo simples, apenas para mostrar como o PHP recebe dados de um Formulário. Em breve, explicarei como gravar esses dados em um Arquivo de Textos, em Bancos de Dados e até como enviar por E-mail.
Nota: Existe uma variável no Arquivo de Configuração do PHP (php.ini) chamada register_globals, essa variável pode receber dois valores: On e Off (Off é o padrão por segurança). Quando o valor está definido como On, nós não precisamos utilizar os arrays associativos $_POST, $_GET ou $_REQUEST para receber dados de formulários. Isso quer dizer que, caso o valor dessa variável esteja definido como On, o Código PHP do exemplo acima também funcionaria se tirasse-mos a segunda linha conforme abaixo:
<?php
echo "Olá " . $nome;
?>
Não sabe como alterar o Arquivo de Configuração do PHP? Expliquei isso no post: Conheça todas as formas de Abrir e Fechar Blocos de Código PHP.echo "Olá " . $nome;
?>
Leia mais:
- Não tem o ambiente de desenvolvimento instalado? Instale o Apache, o PHP e o MySQL com o Wamp;
- Não sabe nada de PHP? Comece com Introdução ao PHP;
- Não conhece nem HTML? Comece com Introdução ao HTML;
Este comentário foi removido pelo autor.
ResponderExcluirmuito bom, parabens
ResponderExcluirFiz ..deu tudo certo. Parabéns....
ResponderExcluirnao funcionou...fiz e nao deu...Entao copiei o seu e guardei como disse e nao deu.
ResponderExcluirTrês detalhes que podem causar erro são:
ResponderExcluir- Na tag "form" do arquivo "form-teste.html", o parâmetro "method" está definido como "post"?
- Na tag "form" do arquivo "form-teste.html", o parâmetro "action" esta definido com o valor "receber-form.php"? Verifique se o nome do arquivo esta correto e se os dois arquivos ("form-teste.html" e "receber-form.php") estão no mesmo diretório.
- Na tag "form" do arquivo "form-teste.html", verifique se o parâmetro "name" da caixa de texto esta definido como "nome" e se no arquivo "receber-form.php" esta recebendo como $_POST['nome'].
Se ainda nada disso funcionar e estiver usando o Wamp conforme uso nos exemplos, reinicie todos os serviços do Wamp (Mostrei isso em: http://denecir.blogspot.com/2010/09/abrir-fechar-php.html) e teste novamente.
Diz aí o que deu depois.
Abração!
código muito bom,de fácil entendimento!
Excluirvaleu, Abraços.
adorei seu post!! muito bom mesmo...enviar os dados lidos para o email é muito difícil? adorava experimentar :)
ResponderExcluirOlá Miguel! Obrigado pelo comentário no meu Blog!
ResponderExcluirMandar e-mail com PHP é super fácil. Com apenas uma linha de código a mais você consegue fazer isso. Basta usar a função mail conforme abaixo:
mail($destinatario, $assunto, $mensagem, $cabecalho);
Onde:
$destinatario = E-mail do destinatário (quem vai receber a mensagem);
$assunto = Assunto da mensagem;
$mensagem = Mensagem em si;
$cabecalho (opcional) = Cabeçalho da mensagem. Aqui você pode informar o Remetente (quem envia), o tipo de mensagem (Texto ou HTML), pode adicionar arquivos anexos, etc.
O exemplo abaixo, ao ser executado, envia um e-mail pra mim (denecir@gmail.com) no formato "HTML" com o assunto "Teste de assunto" e com a mensagem "Teste de Mensagem". Veja só:
mail("denecir@gmail.com", "Teste de assunto", "Teste de Mensagem", "From: DenecirPOP \r\n Content-Type: text/html \r\n");
Como se trata de uma mensagem no formato HTML (Informado no cabeçalho), você pode utilizar TAGs para formatar.
São várias opções e por isso, assim que possível, farei um POST para explicar mais recursos da função MAIL.
Espero ter ajudado. Qualquer coisa, posta aí...
Abração!
Oi Denecir! gostei do seu blog. achei esse site sem querer, navegando e procurndo respostas sobre Dreamweaver. Eu tirei o curso de: Programação:(Visual Basic, Delphi_7, MS_Access)
ResponderExcluirProgramação WEB:(HTML, PHP, JavaScript, Flash, MySQL)
Como sabe, os corsos comerciais são basicos, então nunca perco o tempo de procurar mais: Apostilas, Video aulas e informacão sobre assunto em questão.
Achei esse site bem montado, simples navegar e achar informacão nele, se você mejmo montou ele, meus parabens!..
(desculpe sobre erros gramaticos. Eu sou estrangeiro...)
Eu gostaria de sua ajuda.
ResponderExcluirEu fiz um formulario, mas quando recebo o "comentário" da pessoa por email, o texto vem todo junto sem querbra de linhas...
Como posso resolver isso?
Obrigada!
vava.abracado@gmail.com
concatena com .'
Excluir' fofo
vixx shsuhsudhsau .'< br/ >'
ExcluirUsa o a função "nl2br" na mensagem:
ResponderExcluirhttp://php.net/manual/pt_BR/function.nl2br.php
Eu nao entendo quando salvo um arquivo .php ele coloca o arquivo em formato de texto e nao em linguagem web como deveria ser dai quando mando enviar meu nome ele abre a o aruivo receber-form.php no navegador mas com os codigos escritos como um texto("")e nao como um programa...o que estou fazendo de erradopoderia me ajudar?
ResponderExcluirObs.:Meu navegador eh o Google Chrome
Meu editor de texto eh o bloco de notas
Meu sistema operacional eh o Windows Vista
nossa cara vishhh dica dica
Excluirnavegador mozila ou opera;
seu editor notepad plus plus < ele é muito bom e da pra vc mudar a linguagem para html ou php ou salvar como arquivo html ou php >
e o seu SO putz nem vou comentar...
php.net
Teste
ResponderExcluirEste comentário foi removido por um administrador do blog.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirO arquivo esta mesmo com a extensão ".php"? No Windows, vai em "Organizar" -> "Opções de Pasta e Pesquisa" -> Guia "Modo de Exibição" -> Desmarque a opção "Ocultar as extensões de Tipos de Arquivos conhecidos" -> Clique em "OK". Depois, vai na pasta onde esta o arquivo e verifique se a extensão esta correta.
ResponderExcluirSe mesmo assim não estiver funcionando, verifique no código se você iniciou o mesmo com a abertura padrão do PHP assim: "<?php"
Digo isso, porque as outras formas de iniciar um código ("<?", "<%" e "<?=") dependem de ajustes no php.ini.
Se nada funcionar, me passa seu e-mail, msn ou skype para que eu possa te ajudar. Você fez comentário como anônimo e não tenho como entrar em contato para te ajudar.
No aguardo. Abraço!
Cara estou com um problema.
ResponderExcluirquando clico em enviar parece o erro 403
msg: You don't have permission to access...
me ajuda por favor
Caramba, você colocou o destino certo no parâmetro action da tag form? Me passa seu e-mail, msn, skype, etc. Algum contato. Assim, vou poder te ajudar. Abs!
Excluirconsegui...
Excluirvlw
Legal!
ExcluirObrigado por usar o Blog!
Abraço!
Eu que agradeço
ExcluirMuito bom sua explicação. Gostaria de saber de você como criar um formulário onde o usuário digita um username e senha já cadastrados no banco de dados para que ele possa acessar uma página onde ele interagem com as tabelas desse banco (insert, delete upadate, select).......valeu.
ResponderExcluirDenecir, meu filho! Bora voltar a postar e quem sabe dicas de como conectar a banco de dados, hein? Muito bom o blog :D
ResponderExcluirOla Denecir,
ResponderExcluirTo passando ai pra dizer que seu tutorial é mt bom cara, parabéns.
PS: Não deixa de fazer esses tutoriais, não, continua ai, blz.
Antonio
Boa tarde Denecir, Não sei se ira responder esse comentário, mas gostaria de expor minha dúvida.
ResponderExcluirGostaria e saber como "tratar" o resuldo do PHP. Exemplo: Tenho uma página formulário, o usuário preenche e envia, mas o resultado é uma nova página gerada como resposta pelo PHP. Queria saber se tem como receber só uma variável por exemplo e minha página ficasse intacta.
Oi Marcone, obrigado por ler meu blog!
ExcluirPelo que entendi, o que você quer é submeter o formulário (fazer uma requisição http do tipo post) sem recarregar a página, certo?
Isso é possível utilizando uma tecnologia chamada AJAX. AJAX nada mais é do que JavaScript.
É possível utilizar ajax com JavaScript puro, mas o código fica enorme. Para facilitar, costumamos utilizar bibliotecas prontas para diminuir a quantidade de código nos sistemas e aumentar o tempo de produção. A biblioteca JavaScript mais popular hoje em dia é o JQuery. É muito fácil.
Fiz um exemplo simples e estou mandando para seu e-mail: marconesr@gmail.com
Abraço!
Boa noite, gostaria de saber sobre o caminho entre
ResponderExcluiro formulário php e o formulário html.
Fala Marcelo,
ExcluirNa verdade, o formulário é sempre gerado a partir de um código HTML (mesmo que esteja contido em um arquivo com extensão PHP).
Só que o HTML não processa as informações preenchidas pelos usuários (não manda e-mail ou grava no banco de dados por exemplo). Aí vem a necessidade de usarmos uma linguagem como PHP, ASP, JAVA, etc. Para trabalhar em conjunto com HTML e armazenar e/ou enviar os dados. Entendeu?
Obrigado por usarei blog!
Abraço Amigão!
Bom dia, muito obrigado pela dica.
ExcluirConsegui criar o formulário em html, mas quando carrego para enviar o resultado para o ficheiro em php apenas aparece uma página em branco, o que posso fazer para corrigir este erro?
ResponderExcluirCumprimentos.
É difícil dizer o que deu errado sem ver o código. Mas faz assim: dentro do bloco PHP no arquivo que recebe os dados do formulário, coloca a seguinte linha:
Excluirerror_reporting(E_ALL);
Isso força a exibição dos erros e warnings.
Depois, posta aqui qual mensagem deu.
Abraço!
Muito bom, obrigado!
ResponderExcluirDe nada amigo! Eu que agradeço por usar o blog!
ExcluirBoa tarde, estou tentando construir um código PHP para receber os dados do formulário em HTML, mais estou tendo muita dificuldade, por favor mi de uma dica.
ResponderExcluirOi Marcelo, obrigado por utilizar o blog.
ExcluirNão consegui entender sua dúvida. Neste post, explico exatamente como receber dados de um formulário HTML.
Talvez sua pergunta seja pelo fato de não ter o PHP configurado em sua máquina. Se for isso, sugiro que dê uma lida neste link:
http://denecir.blogspot.com.br/2010/09/instalacao-php-apache-mysql-no-windows.html
Outra coisa que acontece também é que não adianta receber dados de um formulário e não fazer nada com eles. Normalmente esses dados são enviados para um e-mail e/ou gravados em um banco de dados. Essas dicas pretendo futuramente publicar aqui no blog, mas se quiser ver algo agora, sugiro dar uma estudada por este site:
http://w3schools.com/php/default.asp
Espero ter ajudado!
Abraço amigão!
cara eu quebrei a cabeça tentando fazer o php receber dados do formulario HTML e tu em menos de 2 minutos conseguiu me fazer enteder muito mas muuuito obrigado mesmo já dei ctrl+d pra favoritos e vou divulgao o blog sempre que possivel valeu mano
ResponderExcluirObrigado!
ExcluirFico feliz em saber que ajudei alguém.
Fica com Deus!
Cara, gostei muito do seu blog,
ResponderExcluirestou com uma dificuldade aqui e preciso de uma ajudinha.
é o seguinte, preciso fazer um form que envia dois valores para um banco mysql, e criar uma tabela com apenas uma linha e três coluna (celulas), essa tabela a primeira e a segunda celula da tabela deve mostrar o primeiro e o segundo valor que foi cadastrado no banco, a terceira célula deve mostrar a soma desses valores.
bom consegui enviar os bados para o banco atraves do form e mostrar esses valores no primeiro e segundo campo da tabela html, só não estou conseguindo somar esses valores na terceira célula da tabela, pode me ajudar?
confesso que em php eu não sei como fazer, tentei e javascrip através do getElementById(), mas a soma aparece e some rapidinho, não fica na tela, mas gostaria mesmo de fazer isso em php.
desde já agradeço, e parabéns pelo blog, está show!
Obrigado por usar o blog,
ExcluirÉ possível fazer isso tanto com PHP quanto direto no MySQL.
Em ambos os casos não é necessário criar 3 campos, basta apenas criar os dois que terão os valores usados para fazer a soma. Exemplo: "valor1" e "valor2", ou seja, não precisa de um terceiro campo para gravar o resultado da soma.
No caso do MySQL, você pode fazer usando uma query assim:
$query = "SELECT valor1, valor2, (valor1 + valor2) AS soma FROM nome_da_tabela;";
Pronto, depois é só varrer o resultset como você já deve estar fazendo considerando como se existisse um campo na tabela chamado "soma".
Agora, se você quer mesmo fazer a soma no PHP (e não no MySQL), também é fácil. Você dá um SELECT na tabela para pegar os dois campos (valor1 e valor2), varre o resultset colocando cada valor em uma variável e, por fim, faz a soma. Dá uma olhada no exemplo:
$query = "SELECT valor1, valor2 FROM nome_da_tabela;";
$resultset = mysql_query($query);
while($registro=mysql_fetch_array($resultset))
{
$valor1 = $registro['valor1'];
$valor2 = $registro['valor2'];
$soma = $valor1 + $valor2;
echo $valor1.' - '.$valor2.' - '.$soma.'
';
}
Espero ter ajudado!
Fala Denecir, tudo bem?
ResponderExcluirEu estou com uma duvida que até hoje não consegui resolver.
Como faço para através de uma variavel enviada pelo flash ('nome' por exemplo) eu consiga receber do banco de dados outras variáveis relacionadas(telefone,email,endereço,....por exemplo).
Obrigado!
Olá,
ExcluirIsso é uma dúvida muito comum. Primeiro é importante lembrar que o Flash roda na máquina do cliente e, por isso, não possui acesso ao banco de dados, ou seja, será necessário o uso de uma linguagem que fará esse papel (PHP por exemplo).
Existem vários tutoriais que explicam como fazer isso. Segue um:
http://ajuda.uolhost.com.br/index.php?p=resposta&res=904#rmcl
Antes de finalizar, acho importante lembrar que o flash não esta sendo muito utilizado para aplicações desse tipo. Além de ser mais trabalhoso trabalhar desta forma, acredito que outro motivo seja o aumento de acessos por dispositivos móveis (como tablets e smartphones) pois o flash gasta muito mais bateria desses aparelhos.
Abraço!
Great post! We will be linking to this great article on our site.
ResponderExcluirKeep up the good writing.
my web site :: google
Muito bom. Parabéns!
ResponderExcluirA gente tá sempre aprendendo !
ResponderExcluirParabéns, suas explicações são fáceis de compreender.
Muito bom, básico! Responde as perguntas com exemplos práticos.
ResponderExcluirMuito bom cara valeu
ResponderExcluirOlá Denecir! Para receber um post de uma página asp, seria da mesma forma?
ResponderExcluirNão, em ASP seria assim:
Excluir---------------------------------
dim nome, idade
nome = request.form("nome")
idade = request.form("idade")
response.write "Seu nome: " & nome & "
"
response.write "Sua idade:" & idade
---------------------------------
Acima, considero que o formulário que envia informações usa o método POST e nele, existem dois campos com os atributos "name" com os valores "nome" e "idade".
Espero ter ajudado!
Denecir, você foi simples, direto e...perfeito. Esta sua lição inicial preencheu uma semana de buscas. Valeu. Deus te abençoe e proteja.
ResponderExcluirLima/30-11-2016.