Aula 5Cookies e Sessões
MetasCriar e utilizar cookies e sessões na linguagem PHP.
Pré-requisitosLógica de Programação e HTML;Linguagens de Programação I.
ObjetivosConhecer 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.
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 servidor Web 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 servidor Web 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
CookiesUtilizado 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 CookiesAtravés de cookies o servidor Web é 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.
Uso de Cookies em PHPO uso de Cookies em PHP envolve basicamente dois
passos: 1. Criar o Cookie2. 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á-laint setCookie(“nome”, “valor”, tempo_expiração); Nome e valor
são obrigátoriosUma 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 indeterminado)
exemplo_cookie.php
Como encontrá-lo no navegadorChrome: 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 > localhot
meucookie.php
Note que a partir da versão 5.3.10 do PHP o array HTTP_COOKIE_VARSFoi substituído apenas por $_COOKIE
SessãoInformaçõ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 CookiesInformações sobre o usuário que está logado
Utilizando Session em nossa páginaSession para o PHP é uma variável do tipo array
associativo, composto por chaves e valoresAcessí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’];
sessao.php
criando _sessao.php apagando_sessao.php
Teste se usuário esta logado.
Testando retorno sessao.php
logado.php
sessao1.php e sessao2.phpDevido 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 não é ruim, pois possibilitando a manutenção desse código, sempre irá gerar emprego para programadores dessa linguagem.
sessao3.php e sessao4.phpBaixe os arquivos da plataforma, veja as diferença no código-fonte e teste em localhost