Enviando informações para um programa PHP - fij.brfij.br/restrito/prof/arquivos/64_  · Enviando…

  • Published on
    29-Dec-2018

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

1

Disciplina: Tpicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o contedo. Favor adquiri-los para dar continuidade ao curso. Livro: Desenvolvendo Websites com PHP Apostila da Diviso de Servios Comunidade Centro de Computao Unicamp PHP e Formulrios HTML A criao de formulrios realizada atravs da linguagem HTML. Para tornar o formulrio til, deve-se informar ao browser para onde devem ser enviadas as informaes. Isso feito com a opo action, utilizada na tag form do HTML. Exemplo:

Digite seu email:

Agora quando clicar no boto Enviar, o contedo do campo email ser enviado ao programa trata_dados.php, e esse programa tratar a informao recebida. Enviando informaes para um programa PHP A passagem de dados ao programa PHP realizada atravs de mtodos de passagem de parmetros. Existem dois mtodos: GET e POST. No caso de um formulrio, o tipo de mtodo a ser utilizado especificado na opo method da tag form. Exemplo: Mtodo GET Este mtodo o padro para envio de dados, o que significa que se nenhum mtodo for especificado na criao de um formulrio, estaremos utilizando o mtodo GET para o envio dos dados. Nesse mtodo, os dados sero enviados juntamente com o nome da pgina (na URL) que processar os dados recebidos. Exemplo:

Digite seu nome:

Digite sua idade:

Como este formulrio no mostra a opo method na tag form, o padro (method=GET) ser adotado. Suponha que os campos do formulrio tenham sido preenchidos com os seguintes dados: Marcos, 30. Ao clicarmos no boto Enviar, o endereo ativado ser:

2

http://www.seusite.com.br/trata_dados.php?nome=Marcos&idade=30 Os campos do formulrio sero passados como parmetro aps o endereo de destino. O caractere ? representa o incio de uma cadeia de variveis, e o smbolo & identifica o incio de uma nova varivel. Desvantagens de utilizao do mtodo GET: - Limite de caracteres que podem ser enviados (em torno de 2000 caracteres); - Usurio enxerga todos os parmetros por meio da barra de endereo do browser. Vantagem de utilizao do mtodo GET: - Pode tambm ser utilizado para passagem de parmetros por meio de links. Mtodo POST Para utilizar este mtodo deve-se utilizar a opo method na tag form para informar ao browser. Exemplo:

Digite seu nome:

Digite sua idade:

O mtodo POST envia os dados do formulrio por meio do corpo da mensagem encaminha ao servidor. Assim, o usurio no ver em sua barra de endereos aquele endereo enorme contendo uma cadeia de caracteres. Ele ver apenas o endereo do programa ativado. Este mtodo tambm no possui limitao de tamanho dos dados que sero enviados, sendo ideal para formulrios que possuem muitas informaes a serem enviadas. Pode-se tambm enviar imagens e outros arquivos (utilizando o valor file na opo type da tag input do HTML) o que no feito com o mtodo GET. Tratando as informaes recebidas Existem duas maneiras de acessar os dados fornecidos pelo formulrio:

1) Trata-los como se fossem variveis colocando o smbolo $ seguido do prprio nome do campo definido no formulrio. Por exemplo, o campo nome do formulrio do exemplo anterior seria acessado dentro do programa PHP pela varivel $nome. Porm, esse mtodo s funciona se a opo register_globals estiver habilitada no arquivo de configurao php.ini, que por padro fica desabilitada.

2) Utilizar os arrays superglobais predefinidos pelo PHP. Existem dois arrays que o

PHP utiliza: um para armazenar os valores enviados pelo mtodo GET e outro para armazenar informaes enviadas pelo mtodo POST. Esses arrays so o $_GET e o $_POST.

3

De acordo com o exemplo anterior, para acessar os campos do formulrio teramos o seguinte: $_POST[nome] $_POST[email] Funes especiais para formatao de dados Existem funes que tratam cdigos HTML recebidos e coloca caracteres especiais em seu lugar. Assim, caso o usurio digite um cdigo HTML como valor de algum campo, voc poder tratar este cdigo como um valor do tipo texto. Essa funo possui a seguinte sintaxe: Htmlspecialchars(); As mudanas feitas so as seguintes: & substitudo por & substitudo por " < substitudo por < > substitudo por > Exemplo: A execuo deste programa mostra duas linhas na tela: a primeira linha mostrar a imagem foto1.jpg, que puxada de outro servidor. A segunda linha mostra o valor da string em formato texto. Existe tambm a funo stripslashes() que trata a recepo de dados que contm caracteres especiais. Exemplo: Caso o usurio digite a seguinte informao Joo da Silva, vulgo Joo da Maloca, o valor recebido pelo programa PHP ser: Joo da Silva, vulgo \Joo da Maloca\. A funo stripslashes() transforma a string em seu formato original. Quando utiliza-se o mtodo GET, as funes urldecode e urlencode podem ser utilizadas para o tratamento dos dados recebidos. Por exemplo, passando o nome Joaquim da Silva pelo mtodo GET, teremos a seguinte URL: http://www.seusite.com.br/trata_dados.php?nome=Joaquim%20da%20Silva O programa de recepo de dados deveria ter a seguinte linha: $nome = urldecode($nome);

4

Assim, os dados hexadecimais sero substitudos pelos caracteres que eles representam. A funo urlencode possui o funcionamento contrrio.