php mysql aula 08

8
PHP: Cookies e sessões Carlos Santos LabMM 4 - NTC - DeCA - UA Aula PHP+MySQL 08, 24-05-2012

Upload: carlos-santos

Post on 22-Apr-2015

963 views

Category:

Education


7 download

DESCRIPTION

 

TRANSCRIPT

Page 1: PHP MySQL Aula 08

PHP: Cookies e sessões

Carlos SantosLabMM 4 - NTC - DeCA - UAAula PHP+MySQL 08, 24-05-2012

Page 2: PHP MySQL Aula 08

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

Page 3: PHP MySQL Aula 08

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);

Page 4: PHP MySQL Aula 08

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>!

Page 5: PHP MySQL Aula 08

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

Page 6: PHP MySQL Aula 08

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

Page 7: PHP MySQL Aula 08

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

Page 8: PHP MySQL Aula 08

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"