Este documento discute cookies e sessões em PHP, explicando que cookies armazenam dados no computador do usuário enquanto sessões armazenam dados no servidor. Ele ensina como criar cookies e sessões em PHP, incluindo definir valores, recuperar valores e exemplos de código.
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
Aula 5
1. Aula 5
Cookies e Sessões
Metas
Criar e utilizar cookies e sessões na linguagem PHP.
Pré-requisitos
Lógica de Programação e HTML;
Linguagens de Programação I.
Objetivos
Conhecer os principais conceitos relacionados com os
cookies e as sessões;
Aprender a criar cookies e sessões em PHP;
Entender a implementação destes recursos em PHP.
2. Para que servem Cookies e Sessões?
O protocolo HTTP é stateless, ou seja, ele não mantém um
estado/conexão. Toda a interação que o seu cliente fizer
com um servidorWeb acarretará em uma nova requisição e
resposta.
As requisições são independentes e possuem um tempo de
vida (conexão, envio de mensagem, resposta, encerramento
da conexão). O servidorWeb não é capaz de identificar se
duas requisições vieram de um mesmo navegador, e o
mesmo não faz nenhum gerenciamento em memória para
que mensagens sejam compartilhadas entre requisições.
É para suprir esta necessidade que entram os cookies e
sessões
3. Cookies
Utilizado para armazenar informações no
computador/máquina do usuário/cliente mesmo que o
navegador seja fechado sem o uso de um banco de
dados.
Preferências de usuário também utilizam Cookies
Através de cookies o servidorWeb é capaz de trocar
informações de estado com o navegador do usuário.
Desse modo, somos capazes de adicionar produtos a
um carrinho de compras, sem perder estas
informações ao mudar de página, sair do
website ou até mesmo fechar o navegador.
4. Uso de Cookies em PHP
O uso de Cookies em PHP envolve basicamente dois
passos:
1. Criar o Cookie
2. Recuperar o valor do Cookie
Na criação do cookie indicamos qual informação será salva
(deve ser uma String) e criamos um identificador para
referenciá-la
int setCookie(“nome”, “valor”, tempo_expiração); Nome e valor
são obrigátorios
Uma vez definido o Cookie podemos referenciá-lo através
da super global $_COOKIE, um array associativo onde suas
chaves são os nomes dados durante a criação do Cookie
Pode-se definir parâmetros de data e hora (tempo) que essa
informação irá expirar. (Se não definir o tempo o Cookie
expira quando terminar a sessão de navegação )
6. Como encontrá-lo no navegador
Chrome: Configurações > configurações avançadas >
privacidade > Configurações de conteúdo > Todos os
cookies e dados de sites > pesquisar por localhost
Frefox: Ferramentas > Opções > Privacidade > excluir
cookies em Particular > pesquisar por localhost
7. Note que a partir da versão 5.3.10 do PHP
o array HTTP_COOKIE_VARS
Foi substituído apenas por $_COOKIE
meucookie.php
8. Sessão
Informações ficam armazenadas no servidor
Session é um tipo único de variável, que uma vez criada
existe até que o browser seja fechado.
Ela é única por browser e por usuário
Pode ser acessada em qualquer página PHP, dentro de
qualquer método ou função (em PHP é uma variável
Superglobal – ou seja disponível em todos os escopos do
código PHP-)
Para situações onde há a necessidade de que a informação
seja mantida, mas não por tempo suficiente que justifique
seu armazenamento em banco de dados ou Cookies
Informações sobre o usuário que está logado
9. Utilizando Session em nossa página
Session para o PHP é uma variável do tipo array
associativo, composto por chaves e valores
Acessível através da variável $_SESSION[‘ ’]
Adicionamos um valor à Session e atribuímos um
nome (chave/índice) para que possamos acessar este
valor posteriormente
$_SESSION[‘chave’ ] = valor;
$_SESSION[‘login’] = $_POST[‘login’];
10. sessao1.php e sessao2.php
Devido as recentes atualizações nas versões do PHP as funções
session_is_registered() e session_unregister() estão OBSOLETAS,
porém isso não impede seu funcionamento até a versão 5.4.0 do PHP.
O indicado é utilizar as funções isset() e unset() respectivamente para
substituí-las, pois elas tem esse mesmo propósito.
Algo comum na linguagem de programação PHP é a atualização de
alguns códigos. O PHP avisa através da mensagem DEPRECATED. Isso
é bom, pois possibilitando a manutenção desse código, sempre irá
gerar emprego para programadores dessa linguagem.
sessao3.php e sessao4.php
Baixe os arquivos da plataforma, veja as diferenças no código-fonte e teste em localhost