1. PHP: Cookies e sessões
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula PHP+MySQL 08, 24-05-2012
2. Gestão de sessões (session handling) com PHP
surge com o PHP 4.0 e é fundamental para as aplicações Web 2.0
• ambientes
• multi-utilizador
• interactivos, colaborativos
• personalizáveis
É necessário ajustar a aplicação Web às acções e preferências (passadas,
presentes e futuras) de cada utilizador -> propagar estados/preferências
por várias páginas
3. Cookies
utilização de cookies
• guardam a informação desses estados/preferências no cliente (browser)
• existem algumas limitações ao uso de cookies (tamanho/capacidade,
número, segurança)
definir a data em que o cookie expirará
• $data_expira_cookie = mktime(0,0,0,12,25,2011);
• mktime (hour, min, sec, month, day, year)
criar o cookie
• setcookie('nome', 'valor', $data_expira_cookie);
4. Cookies
ler o valor armazenado no cookie
• $_COOKIE['cookie_natal']
alterar o cookie
• setcookie('nome', 'novo valor', time()+5*3600)
• nova duração é de 5h!
apagar o cookie
• se tempo = 0 o cookie é apagado no final da sessão
• colocar um tempo passado para apagar um cookie
colocar qualquer setcookie sempre no início do código da página ->
antes de <HTML>!
5. Sessões
utilizador inicia na aplicação uma sessão de trabalho (normalmente após
efetuar um login) -> session_start()
é atribuído um identificador único (Session ID - SID) a essa sessão ->
gravado numa cookie
• session_id() -> permite conhecer o SID (qofias54lqehctohipevl5cph3)
• session_id(“novo sid”) -> também permite especificar um SID
associados a cada sessão existem diferentes parâmetros que definem o
ambiente de utilização da aplicação para o utilizador
• SESSION ID
• SESSION VARS
6. Sessões
sempre que necessário o SID é lido e os parâmetros associados
(armazenados em variáveis de sessão) são fornecidos pelo servidor
• $_SESSION[‘nome_variavel_sessao’]
• cookie com o SID pode manter-se no cliente, permitindo assim sessões
persistentes -> que perduram entre utilizações sucessivas da aplicação
• Exemplo: http://www.phpbuilder.com/tips/item.php?id=179
7. Sessões
funções importantes nas gestão de sessões:
• session_start()
• inicia uma nova sessão (atribuindo novo SID) ou continua uma sessão
existente (usando um SID existente)
• session_unset()
• apaga todas as variáveis de sessão entretanto criadas
• coloca a sessão no seu estado inicial (como quando foi criada)
• session_destroy()
• apaga as variáveis de sessão e destrói a sessão
• não destrói a cookie
8. Sessões
criar e destruir variáveis de sessão
// depois de um session_start();
// criar uma variável de sessão:
$_SESSION[‘fundo'] = “#000";
// para destruir a variável de sessão
unset($_SESSION[‘fundo']); !
como são guardados no servidor, os dados de uma sessão?
• num ficheiro de texto com todas as variáveis de sessão e respetivos valores
serializados
nome_utilizador|s:6:"Manuel";perfil|s:1:"1";interface|s:1:"1"