php mysql aula 08
DESCRIPTION
TRANSCRIPT
PHP: Cookies e sessões
Carlos SantosLabMM 4 - NTC - DeCA - UAAula PHP+MySQL 08, 24-05-2012
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
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);
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>!
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
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
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
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"