Programação para Web I Aula 5 – Formulários GET – POST - REQUEST.

Post on 07-Apr-2016

248 views 0 download

Transcript of Programação para Web I Aula 5 – Formulários GET – POST - REQUEST.

Programação para Web I

Aula 5 – FormuláriosGET – POST - REQUEST

Entendendo os métodos GET – POST - REQUEST

Sendo informal e direto, o HTTP – Hypertext Transfer Protocol(Protocolo de Transferência de Dados) é um protocolo ou padrão de rede implementado em cima do TCP para que browsers e servidores possam se comunicar.

INTRODUÇÃO

Um cliente HTTP:

são softwares que se comunicam com servidores através do HTTP.

Podemos dizer também que são softwares os servidores:

INTRODUÇÃO

IISApache IIS

Micrsoft

Eles precisam fazer também a comunicação entre o cliente e servidorTransmitir dados de um lado para o outro

Entendendo os métodos GET – POST - REQUEST

Essas comunicações são feitas através de 3 variáveis pré-definidas principais no PHP:

INTRODUÇÃO

Entendendo os métodos GET – POST - REQUEST

$_POST[ ] $_GET[ ] $_REQUEST[ ]

Vamos entender a diferença entre o POST e GET, depois faremos um apanhado geral do REQUEST.

DIFERENÇAS ?

Entendendo os métodos GET – POST - REQUEST

DIFERENÇAS : VISIBILIDADE

Entendendo os métodos GET – POST - REQUEST

$_GET[ ] $_POST[ ]

Uma requisição GET é enviada como string anexada a UR

É encapsulada junto ao corpo da requisição HTTP e não pode ser vista.

Entendendo os métodos GET – POST - REQUEST

Exemplo POST

</ >Os valores das variáveis não aparecem na URL

</ >

Entendendo os métodos GET – POST - REQUEST

Exemplo GET

Utilizado o mesmo exemplo:

</ >Analisem que as informações estão aparecendo na URL

</ >

Entendendo os métodos GET – POST - REQUEST

DIFERENÇAS : TAMANHO

$_GET[ ] $_POST[ ]

GET é feita via URL, obviamente há uma limitação no tamanho da mensagem enviada. A string não pode conter mais que 255 caracteres(embora exista diferenças entre navegadores, mas em geral o limite é 255). 

Não há limitações de comprimento da mensagem, já que a mesma é enviada no corpo da requisição HTTP.

Entendendo os métodos GET – POST - REQUEST

DIFERENÇAS : PERFORMANCE

$_GET[ ] $_POST[ ]

é relativamente mais rápida, já que ela é mais simples.

há uma perda de tempo no encapsulamento da mensagem.

Entendendo os métodos GET – POST - REQUEST

DIFERENÇAS : TIPOS

$_GET[ ] $_POST[ ]

Já que GET é enviado via URL, então nós sabemos que ela só transporta textos.  

Não tem restrições, pode transportar tanto texto, como dados binários.

Entendendo os métodos GET – POST - REQUEST

DIFERENÇAS : FAVORITOS/BOOKMARKS

$_GET[ ] $_POST[ ]

Por se tratar apenas de uma URL, a requisição GET pode ser armazenada em cache, ou em um sistema de bookmark(favoritos). 

A mesma coisa não é possível para requisições POST.

Entendendo os métodos GET – POST - REQUEST

DIFERENÇAS : METÓDO PADRÃO HTML

$_GET[ ] $_POST[ ]

GET é o método HTML padrão.

Para submeter um formulário HTML usando POST é preciso especificar no atributo “method” o valor “POST”.

Entendendo os métodos GET – POST - REQUEST

DIFERENÇAS : DADOS

$_GET[ ] $_POST[ ]

As requisições GET são limitadas ao padrão ASCII 

 requisições POST também podem usar o atributo “enctype” com o valor “multipart/form-data”, que faz uso do padrão UCS(Universal Multiple-Octet Coded Character Set).

Variáveis de requisição HTTP

E o REQUEST?

Entendendo os métodos GET – POST - REQUEST

Um array associativo que por padrão contém informações de $_GET, $_POST and $_COOKIE.

Esta é uma 'superglobal', ou global automática, variável. Isto simplismente significa que ela está disponível em todos escopos pelo script. Não há necessidade de fazer global $variable; para acessá-la dentro de uma função ou método.

Entendendo os métodos GET – POST - REQUEST

E o REQUEST?

Resumindo, ele faz o papel de todos. Ele é mais pesado.Não há muita necessidade de utilizá-lo pois temos as var super globais$_POST, $_GET e $_COOKIE

FORMULÁRIOS

FORMULÁRIOS + PHP

Campos Text e Textarea

FORMULÁRIOS

FORMULÁRIOS + PHP

Campos Radio

FORMULÁRIOS

FORMULÁRIOS + PHP

Campos Checkbox

Este formulário têm múltiplas escolhas, por isso é necessário a utilização doLaço de repetição para receber todas as informações selecionadas.

FORMULÁRIOS

FORMULÁRIOS + PHP

o isset é uma palavra reservada do php, que server para verificar se uma variável existe ou não

Uma variável é destruídacom unset()

FORMULÁRIOS

FORMULÁRIOS + PHP

FORMULÁRIOS

FORMULÁRIOS + PHP

Campos Select

Os campos select permitem tratar uma variedade de opções, onde o usuário pode selecionar apenas uma opção ou múltiplas opções

FORMULÁRIOS

FORMULÁRIOS + PHP

FORMULÁRIOS

FORMULÁRIOS + PHP

Utilizando HTML5

FORMULÁRIOS

FORMULÁRIOS + PHPFormulários parte 2

FORMULÁRIOS

FORMULÁRIOS + PHP

range | Slider

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

FORMULÁRIOS + PHP

Segundo o formulário abaixo, iremos mostrar alguns tratamentos de formulários:

Criando a primeira página que irá conter o HTML Formulário

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Após isso, iremos criar uma outra página que irá receber o conteúdo digitado no formulário

Vejam que estamos trabalhando com as seguintes funções para o tratamento:

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

 htmlspecialchars() transforma caracteres que sejam especiais no HTML na sua forma codificada, de forma que não seja possível injetar tags HTML ou JavaScript em sua página. 

O campo age (idade), por ser um número, pode-se simplesmente converterpara um integer que automaticamente eliminará qualquer letra. 

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Para tratamentos, podemos utilizar também a função FILTER

filter_has_var — Verifica se a variável é de um especificado tipo existentefilter_id — Retorna o ID de um dado nome de filtrofilter_input_array — Obtem variáveis externas e opcionalmente as filtrafilter_input — Obtem a específica variável externa pelo nome e opcionalmente a filtrafilter_list — Retorna a lista de todos filtros suportadosfilter_var_array — Obtêm múltiplas variáveis e opcionalmente as filtrafilter_var — Filtra a variável com um especificado filtro

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕESVamos começar pela última: filter_var — Filtra a variável com um especificado filtro

Descrição

Valor para filtrar. ID do Filtro

Array associativo de opções ou disjunção binário de flags. Se o filtro aceita opções, flags podem ser providas no campo "flags" do array. Para o "callback" do filtro, o tipo callback pode ser passado

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕESExemplo

Se eu mudar o email para um inválido:Vai me retornar um boolean:false

FORMULÁRIOS + PHPFUNÇÕES de TRATAMENTOS | VALIDAÇÕESLista de Filter_Validate

id DescriçãoFILTER_VALIDATE_BOOLEAN Returns TRUE for "1", "true",

"on" and "yes"Returns FALSE for "0", "false", "off" and "no"Returns NULL otherwise.

FILTER_VALIDATE_EMAIL Validação de emailFILTER_VALIDATE_FLOAT FloatFILTER_VALIDATE_INT InteiroFILTER_VALIDATE_IP IPFILTER_SANITIZE_STRING Remove todas as tags HTML da

StringFILTER_SANITIZE_SPECIAL_CHARS

Remove todos os caracteres especiais

FILTER_SANITIZE_NUMBER_INT

Remove todos os car ilegais de números

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Exemplos de cada um:

Retorna true devido ao valor ser ‘yes’

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Validando um valor em float.

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Verificando se um número é um valor inteiro

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Verificando se um IP é válido

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Tirando tags HTML de uma string

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Tirando caracteres especiais do texto

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Tirando qualquer valor que não faça parte de números e cálculos

FORMULÁRIOS + PHP

FUNÇÕES de TRATAMENTOS | VALIDAÇÕES

Continuaremos

Anexos de exmplos. INDEX.PHP

Anexos

Anexos

Anexos de exmplos. VALIDA.PHP

Anexos

Anexos de exmplos. INDEX.PHP

Anexos

Anexos de exmplos. VALIDA.PHP

Anexos

Anexos de exmplos. VALIDA.PHP

Anexos

Anexos de exmplos. VALIDA.PHP

Anexos

Anexos de exmplos. VALIDA.PHP

Anexos

Anexos de exmplos. VALIDA.PHP

Anexos

Anexos de exmplos. VALIDA.PHP

Anexos

Anexos de exmplos. VALIDA.PHP

Anexos

Anexos de exmplos. VALIDA.PHP