Programação WEB II Formulários Em PHP Métodos GET e POST [email protected] Thiago Miranda dos Santos Souza Conteúdos Programação WEB II Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net Thiago Miranda dos Santos Souza Objetivos Programação WEB II Entender o funcionamento da interação entre formulários e páginas PHP Praticar o conteúdo já trabalhado Thiago Miranda dos Santos Souza Tópicos da Aula Programação WEB II 1. Formulários em HTML 2. Recebendo dados em PHP 3. Método GET 4. Método POST 5. Método Request Thiago Miranda dos Santos Souza Programação WEB II O que iremos aprender • Como criar um formulários para ser preenchido pelos usuários • Como as informações de um formulário podem ser enviadas para um programa PHP • Como o programa PHP recebe e trata tais informações Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários <form action="recebe_dados.php"> <p> Digite seu e-mail: <input type="text" name="email" size="20"> </p> <p> <input type="submit" value="Enviar!" name="enviar"> </p> </form> Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos texto <input type =" text " name =“primeiro_nome" /> Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos texto com limite de caracteres Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos Hidden • Funciona como o Text porem não e visível para o usuário • Armazena valores que não são editáveis pelo usuário • Utilizado para armazenar valores em formulários multi-página Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos textarea <form > <textarea rows ="10" cols ="30"> </ textarea > </ form > Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos password - Senha Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos radio Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos radio com valor default Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos checkbox Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos checkbox – valor default <form > <input type =" checkbox " name =“veiculo" value =" bicicleta" checked /> Eu tenho uma Bicicleta <br /> </ form > Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos select Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campos select com valor default Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Gerando um campo Select com PHP Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Campo file Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Botão – Tipo Reset Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Botão – Tipo Submit Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Atributos de formulário •Action: define a ação que tratará os dados do formulário • URL: action=“recebe_dados.php" • method: forma de envio • GET (default) dados visíveis na URL (teste.php?nome=joao) • POST: dados invisveis Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Métodos de Envio Thiago Miranda dos Santos Souza Programação WEB II Relembrando Formulários Vamos praticar! Crie um formulário que utiliza o método POST e que seja enviado para um página de nome teste.php e que contenha pelo menos 1 campo do tipo texto, 1 do tipo checkbox, 1 do tipo radio, 1 botão de envio (submit) e 1 para limpar os dados. Thiago Miranda dos Santos Souza Programação WEB II Recebendo os dados do formulário • O $_GET e $ _POST do PHP são variáveis utilizadas para recuperar informações de formulários, como a entrada do usuário. Formulário de Manipulação PHP • A coisa mais importante a notar quando se lida com formulários HTML e PHP é que qualquer elemento de formulário em uma página HTML serão automaticamente disponíveis para seus scripts PHP. Thiago Miranda dos Santos Souza Programação WEB II Recebendo os dados do formulário Thiago Miranda dos Santos Souza Método GET Programação WEB II Se nenhum método for especificado em form, esse será o padrão de envio; Os dados são enviados junto com a URL da página que irá processar as informações. Exemplo: <form action="recebe_dados.php"> <p> Digite seu nome: <input type="text" name="nome" size="30"> </p> <p> Digite sua idade: <input type="text" name="idade" size="3"> </p> <p> <input type="submit" value="Enviar!" name="enviar"> </p> </form> Se preenchermos este formulário com o nome Joaquim e a idade 20, o endereço enviado pelo navegador será: http://www.seusite.com.br/recebe_dados.php?nome=Joaquim&idade=20 Thiago Miranda dos Santos Souza Método GET Programação WEB II Vantagem: pode-se utilizar um link e, neste link, enviarse algum parâmetro que será tratado por outro script php; Desvantagens: •Limite máximo de caracteres = 2048 caracteres; •Segurança = qualquer dado enviado é mostrado na URL pra todo mundo ver, inclusive senhas. Thiago Miranda dos Santos Souza Método POST Programação WEB II Uso do método post no formulário HTML: <form action="recebe_dados.php" method="post"> <p> Digite seu nome: <input type="text" name="nome" size="30"> </p> <p> Digite sua idade: <input type="text" name="idade" size="3"> </p> <p> <input type="submit" value="Enviar!" name="enviar"> </p> </form> Os dados são enviados no corpo da mensagem; São invisíveis ao usuário; Não há limite da quantidade de informações mandadas; Permite o envio de outros tipos de informações que GET não suporta: arquivos (de qualquer tipo); Segurança no envio de informações. Thiago Miranda dos Santos Souza Recebendo os dados Programação WEB II Através de dois arrays globais que o PHP tem: $_GET e $_POST; O PHP mantém estes dois arrays, e o campo nome de cada item do formulário é o índice destes arrays; Se o usuário preencher o nome e o e-mail no formulário, seus dados podem ser capturados no programa PHP da seguinte forma: $_POST["nome"]; $_POST["email"]; Ou $_GET["nome"]; $_GET["email"]; Thiago Miranda dos Santos Souza Programação WEB II Recebendo dados de Formulários Vamos praticar! Crie a página recebe_dados.php que irá receber o nome e a idade de uma pessoa utilizando o método GET e imprima essas informações na tela. Passe esses dados pela url! Thiago Miranda dos Santos Souza Recebendo os dados Programação WEB II Thiago Miranda dos Santos Souza Programação WEB II Recebendo dados de Formulários Vamos praticar! Crie a página recebe_dados2.php que irá receber o nome e a idade de uma pessoa utilizando o método post e imprima essas informações na tela. Passe esses dados por um formulário! Thiago Miranda dos Santos Souza Método Request Programação WEB II A função embutida $_REQUEST contém o conteúdo de ambos os $_GET, $_POST e $_COOKIE. A função $_REQUEST pode ser usada para coletar dados de formulários enviados com ambos os métodos GET e POST. Exemplo <?php echo $_REQUEST[“nome"]; ?>!<br/> tem <?php echo $_REQUEST[“idade"]; ?> anos de idade. Thiago Miranda dos Santos Souza Programação WEB II Elementos e como tratar seus dados Thiago Miranda dos Santos Souza Programação WEB II Recebendo dados de Formulários Vamos praticar! Crie a página recebe_dados3.php que irá receber as informações que você criou no exemplo de formulário, inclua também um campo checkbox. Na página recebe_dados3.php imprima na tela tudo que foi fornecido pelo usuário no Formulário. Thiago Miranda dos Santos Souza Programação WEB II Recebendo dados de Formulários Vamos praticar! Crie a página recebe_dados4.php que irá receber dados de um formulário que você irá criar com um campo texto para o nome e um campo checkbox para o usuário poder escolher suas frutas favoritas. Imprima na tela o nome dessas frutas e o nome da pessoa Thiago Miranda dos Santos Souza Programação WEB II Recebendo dados de Formulários Vamos praticar! Elabore um script em PHP que receba de um formulário o nome e o salário de quatro funcionários e armazene estas informações em um vetor. O nome dever ser usado como índice associativo do vetor. O script deverá escrever na página web o nome de todos aqueles funcionários cujo salário for menor que R$ 500,00. Thiago Miranda dos Santos Souza Programação WEB II Recebendo dados de Formulários Vamos praticar! Uma livraria virtual mantém, para cada livro cadastrado em seu site, o título, o autor, o preço e a disponibilidade em estoque. Elabore um formulário em XHTML que estruture as informações acima descritas para cinco livros. Em seguida, crie dois scripts em PHP que guarde estas informações numa matriz e calcule e escreva: 1 - O título e o preço do livro mais caro da livraria virtual; 2 - A disponibilidade em estoque para todos os livros com preço inferior a R$ 200,00. Thiago Miranda dos Santos Souza Dúvidas Programação WEB II Thiago Miranda dos Santos Souza