Enviado dados para o PHP através de formulário Bom galera, eu estive um tempo parado sem postar nada aqui no blog, mas prometo que vou tentar voltar a ativa. Mas vamos deixar de conversa e vamos ao que interessa mesmo. Os iniciantes em PHP sempre tem a dúvida de como fazer o envio de umas informações de uma página para outra. Como vimos na postagem anterior as diferenças do GET e POST, agora vamos mostrar na prática como funciona o código. A princípio, devemos saber que basicamente o envio dos dados de um formulário, geralmente, são enviados pelo método POST devido a sua capacidade de enviar grandes dados e segurança. Só para recapitular um pouco sobre formulário em HTML, temos os seguintes tipos de campos de dados: Hidden Text e Textarea Radio Checkbox Select Montando o formulário HTML Todo formulário começa com a tag <form> e para uo funcionamento com o PHP, precisamo definir alguns parâmetros como action e method e seus devidos valores de acordo com a sua necessidade. Os campos do formulários precisam ter o parâmetro name com um valor definido, pois será o PHP que irá capturar através deste name o valor passado no formulário.
Uma outra necessidade é colocar um botão de submit que é responsável pelo gatilho de envio dos dados que foram preenchidos no formulário e jogando para a página que irá recebê-los. Vamos começar com um exemplo simples de formulário com apenas 2 campos, nome e idade. Vamos chamar esse arquivo de formulário.php. Vejamos o código abaixo: <form id="formulario" name="formulario" method="post" action="recebe_dados.php"> Nome: <input type="text" name="campo_nome" id="campo_nome" /><br /> Idade: <input type="text" name="campo_idade" id="campo_diade" /><br /> <input type="submit" name="button" id="button" value="enviar" /> </form> Perceba que eu defini o action para o arquivo recebe_dados.php e utilizando o método POST. Os nomes dos campos nome e idade estão definidos como campo_nome e campo_idade respectivamente. Recebendo os dados na outra página Para a captura de dados enviados para o PHP, nós utilizamos as seguintes variáveis: $_POST e $_GET; de acordo com o método definido no formulário. Como no nosso exemplo acima eu utilizei o método POST, vou mostrar agora como iremos capturar esses dados no arquivo recebe_dados.php : echo "O nome enviado foi: ".$_POST['campo_nome']."<br />"; echo "A idade enviada foi: ".$_POST['campo_idade']."<br />"; Perceba que dentro do $_POST eu defini em cada campo o nome do campo utilizado no formulário com o parâmetro name. Então não importa o valor do name que você definir lá no
formulário, pois basta você definir o mesmo nome na hora de capturar pelo PHP no $_POST. Ou seja, se no campo eu definir o valor do name para banana no PHP eu tenho que utilizar $_POST[ banana ]. Deu pra entender a jogada? É muito simples mesmo esse envio de dados! Agora veja abaixo como seria em cada tipo de dados no formulário e como capturar no PHP. Campo Hidden Neste tipo de campo, precisamo definir um value, que será o valor enviado através do camop de forma já definida. <input type="hidden" name="macaco" value="banana" /> echo $_POST['macaco']; // Receberá o valor "banana" Campo Text e Textarea <input type="text" name="email" /> <textarea name="mensagem" id="textarea" cols="45" rows="5"></textarea> echo $_POST['email']; echo $_POST['mensagem'];
Campo Checkbox <input type="checkbox" name="valor" value="10" /> echo $_POST['valor']; Campo Select Mais uma diferença no tipo SELECT, pois nele definimos normalmente o name e os values são definidos em cada <option>. <select name="sexo" id="select"> <option value="m">masculino</option> <option value="f">feminino</option> </select> echo $_POST['sexo']; E chagemos ao fim do entendimento de como passar os dados de um formulário para uma página PHP receber os dados e você fazer o que quiser com eles, por exemplo, manipular os dados e cadastrar no banco de dados. Espero que tenham entendido e que façam um bom proveito do material. Grande abraço e fico no aguardo de dúvidas!
Entendendo a diferença entre os Métodos GET e POST no PHP É de extrema importância saber bem a diferença desses dois métodos, para que se possa utilizá-los de forma correta e na hora certa. De certa forma, os dois fazem o envio de dados através do HTTP. GET Este método é utilizado quando queremos passar poucas/pequenas informações para realizar uma pesquisa ou simplesmente passar uma informação para outra página através da URL (barra de endereços). O que não pode acontecer é as suas requisições resultarem em mudanças no conteúdo da resposta. A função do método GET é pura e simplesmente recuperar um recurso existente no servidor. O resultado de uma requisição GET é cacheável pelo cliente, ou seja, fica no histórico do navegador. Exemplo do GET http://www.umsite.com.br/?cat=3&pag=2&tipo=5 Para que você possa entender melhor este exemplo, você só precisa olhar para as informações que vem logo após a interrogação?, pois é o símbolo que indica o início dos dados passados através da URL, ou seja, pelo método GET. Se você prestar atenção, notará que sempre vem um índice e um valor logo após o sinal de igualdade (Ex.: cat=3) e quando queremos incluir mais de uma informação, acrescentamos o símbolo & para concatenar o restante (Ex.:
cat=3&pag=2&tipo=5). Este método é bem restrito quanto ao tamanho e quantidade das informações que são passadas pela URL. Você poderá enviar no máximo 1024 caracteres, o que limita bastante suas possibilidades com esse método. Caso você passe desse limite, você corre o risco de obter um erro da sua página, já que as informações foram passadas de forma incompleta. Como você já percebeu, as informações enviadas ficam visíveis ao visitante, o que é uma brecha na segurança, pois um visitante malicioso pode colocar algum código de SQL Injection e fazer um belo estrago com o seu site, ou até mesmo o servidor. Então, quando queremos passar parâmetros confidenciais, como exemplo as senhas, não devemos utilizar esse método. Para isso temos o POST. POST Este método é mais seguro e tem uma capacidade de dados melhor que o GET. Nesse método uma conexão paralela é aberta e os dados são passados por ela. Não há restrição referente ao tamanho e os dados não são visíveis ao usuário. Este método é feito através de formulários (Tag <form>), onde passamos informações para uma outra página que irá recebê-las e fazer o que o desenvolvedor quiser, como tratamento dos dados, armazenamento no banco de dados, etc. Por passar dados invisíveis ao usuário, ela se torna mais segura e devemos utilizar este método quando criamos sistemas de acesso restrito com sessões (login/senha). Para enviarmos algumas informações de um formulário para uma outra página, devemos incluir no atributo method o valor POST e no atributo action o nome do arquivo que irá receber as informações.
Exemplo do POST <form name="formcontato" method="post" action="enviar_email.php"> <p> Nome: <input type="text" name="nome" /><br /> E-mail: <input type="text" name="email" /><br /> Mensagem:<br /> <textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea> </p> <p> <input type="submit" name="button" id="button" value="enviar Mensagem" /> </p> </form> Bom, agora que temos uma visão mais geral dos dois métodos, fica mais fácil para entendermos mais pra frente como trabalhar com o envio dos dados através dos formulários e também pelos links. Espero que tenham aprendido um pouco mais. Abraços e até mais!