Sessões	e	Cookies	em	PHP
Prof.	Humberto	Jorge	de	Moura	Costa
humberto@humbertomoura.com.br
25/11/2015
Habilidades
üIdentificar	e	aplicar	os	fundamentos	de	cookies	e	sessões;
üObter	e	salvar	dados	de	cookies;
üManipular	dados	em	sessões;
üUtilizar sessões	e cookies adequadamente;
2
Aula	de	Hoje	– Cookies	e	Sessões
üIntrodução	/	Problema	Exemplo
üRevisão	- HTTP	Stateless
üCookies
üSessões
üTrabalho	Individual
3
Introdução	/	Problema	Exemplo	– Loja	Virtual
4
HTTP	é Stateless	
üNão	se	lembra	de	requisições	/	respostas	anteriores
Maria
(Itorian,	2012)
5
HTTP	é Stateless	
üNão	se	lembra	de	requisições	/	respostas	anteriores
João
6
Principais	Opções:	Cookies	e	Sessões
$_COOKIE $_SESSION
7
Cookie
"Um	cookie é	um	pequeno	texto	que	os	sites	podem	enviar	aos	
navegadores,	anexado	a	qualquer	conexão.	Nas	visitas	posteriores	o	
navegador	reenvia	os	dados	para	o	servidor	dono	do	cookie.	Um	cookie	é	
transmitido	até	que	perca	a	validade,	que	é	definida	pelo	site”.
(PHP	Manual,	2015)
8
Cookies	/	Exemplo	Pasta	Internet	Explorer:
9
Cookie	/	Exemplo	IFRS
javascript:alert(document.cookie) 10
Cookie	/	Exemplo	IFRS
Acesso:	Preferências,	Privacidade,	remover	cookies	individualmente
11
Exemplos	de	Uso	de	Cookies
üPersonalizar	o	conteúdo	de	um	site;
üRastrear	usuários,	ao	navegar	por	páginas;
üIdentificar	visitantes	únicos;
üArmazenar	informações	no	cliente.
12
Características	do	Cookies
üArmazenam	os	dados	no	lado	cliente	(Client Side);
üFicam	armazenados	na	área	de	cookies	do	navegador;
üUsuários	pode	excluir	cookies	a	qualquer	momento;
üO	acesso	aos	cookies	é	restrito	por	site.
üPossuem	um	nome;
üPossuem	um	conteúdo;
üPossuem	um	tempo	de	vida	(Pode	ser	longo);
13
Cookies	/	Principais	Ações	
üCriar	um	novo	cookie;
üAtualizar	um	cookie	existente;
üExcluir	um	cookie;
üObter	o	valor	de	um	cookie	específico;
üObter	todos	os	cookies.
14
Criar	/	atualizar	um	novo	Cookie
üPodemos	usar	a	função	setcookie()	para	criar	um	cookie;
üsetcookie()	deve	ser	chamado	antes	que	qualquer	dado	seja	enviado	ao	
navegador;
üCaso	não	será	especificado	o	tempo,	durará	enquanto	o	navegador	estiver	
aberto.
15
Cookies	em	PHP	/	Buscar	um	Cookie	Específico
üUtilizamos	o	array associativo	$_COOKIE[]	para	obter	um	cookie;
üDevemos	colocar	o	nome	do	cookie	existente	como	índice do	array;
üEste	valor	pode	ser	armazenado	em	uma	variável	ou	realizada	qualquer	
operação	válida	no	PHP.
16
Cookies	em	PHP	/	Buscar	todos	os	Cookies
üPodemos	percorrer	todos	os	cookies	através	de	um	laço	foreach.
üArmazenamos	o	nome	e	o	valor	nas	respectivas	variáveis	utilizadas	no	
laço.
17
Cookies	em	PHP	/	Excluir	um	Cookie
üPodemos	utilizar	a	função	unset()	com	o	nome	do	cookie;
üOu	também	utilizar	a	função	setcookie() com	o	tempo	já	expirado.
üTambém	podemos	excluir	colocando	somente	o	nome	no	setcookie().
18
Erros	Comuns
üTentar	criar	um	cookie	após	ter	escrito	no	navegador;
üErro	de	digitação	no	nome	do	cookie.
üUtilizar	um	cookie	já	expirado,	portanto,	não	existe	mais.
üSugestão:	utilizar	isset()	para	verificar	se	existe.
19
Exemplo	de	Problema	/	Cookies
“A	loja	de	acessórios	para	animais	“PetPlace”	pensando	em	superar	a	crise	
econômica,	decidiu	atualizar	o	seu	web	site.	Os	proprietários	da	loja,	
solicitaram	ao	desenvolvedor	do	site,	caso	fosse	a	primeira	visita	do	cliente,	
exibir	o	Banner	de	uma	promoção	de	Ração	para	cães.
20
Exemplo	– Tela	do	Banner	Promoção
Site	Atual Site	deve	carregar	banner	na	primeira	vez21
Solução
üBuscar	um	cookie	que	indica	se	é		visitante	antigo;
üTestar	ao	entrar	na	página,	se	o	cookie	existe;
üCaso	exista,	não	exibir	o	banner.		Se	não	existir,	exibir	o	banner	e	criar	o	
cookie	para	marcar	como	visitante	antigo	nas	próximas	visitas	ao	site.
22
Sessões	(Session)
“Sessão é	um	forma	de	preservar	dados	entre	acessos	subsequentes	do	
usuário.	Um	identificador	único,	chamado	id	de	sessão	é	associado	a	cada	
visitante	no	site.”
23
Sessões	/	Exemplo	– Carrinho	de	compras
24
Exemplos	de	Uso	de	Sessões
üPersonalizar	o	conteúdo	de	um	site;
üRastrear	usuários,	ao	navegar	por	páginas;
üIdentificar	usuários;
üArmazenar	informações	no	servidor.
25
Características	das	Sessões
üArmazenam	os	dados	no	lado	servidor(Server	Side);
üA	maioria	utiliza	cookies	internamente.
üTambém	podem	ser	usadas	por	reescrita	de	URL	ao	invés	de	cookies;
üSão	muito	utilizadas	para	autenticação	através	de	login.
üPossuem	um	id	(PHPSESSID);
üPossuem	variáveis	de	sessão;
26
Sessões	/	Principais	Ações	
üIniciar	uma	sessão;
üLer	e	gravar	variáveis	da	sessão;
üExcluir	variáveis	de	sessão;
üDestruir	a	sessão.
27
Ler	/	Gravar	Variáveis	na	Sessão	
üUtilizamos	o	array associativo	$_SESSION	para	ler	e	gravar;
28
Excluir	Variáveis	de	Sessão	
üUtilizamos	a	função	unset() com	o	nome	da	variável	de	parâmetro.
29
Destruir	a	Sessão	
üUtilizamos	a	função	session_destroy() para	excluir	a	sessão.
üAntes	de	excluí-la	devemos	excluir	as	variáveis	de	sessão.
30
Erros	Comuns	- Sessões
üTentar	criar	um	sessão	após	ter	escrito	no	navegador;
üErro	de	digitação	no	nome	das	variáveis	de	sessão.
üUtilizar	uma	variável	de	sessão	já	expirada,	portanto,	não	existe	mais.
üChamar	session_destroy,	sem	antes	excluir	as	variáveis	de	sessão.
31
(Trabalho	Individual)	/	Sessões
“A	loja	de	acessórios	para	animais	“PetPlace”	ficou	feliz	com	a	solução	
apresentada	anteriormente,	e	com	as	vendas,	superou	a	crise	econômica.	
Agora,	os	proprietários	da	loja,	solicitam	um	cadastro	de	usuário	e	senha	
(login)	para	o	site,	pois	pretendem	vender	os	produtos	pelo	site.	
32
Exemplo	– Tela	de	Cadastro
Web	site	Inicial Web	Site	com	Tela	de	Cadastro 33
Dicas	para	a	Solução
üDesenvolver	um	cadastro	de	usuário	e	senha	com	Banco	de	Dados
üDesenvolver	um	carrinho	de	compras	usando	sessões	e/ou	cookies.
üOs	produtos	podem	ser	inseridos	e	excluídos	no	carrinho	de	compras.
34
Referências
CONVERSE,	T;	PARK,	J.	PHP	a	Bíblia.	Editora	Campus	Elsevier,	2003.
DALL’OGLIO,	P.	PHP	:	Programando	com	Orientação	a	Objetos.	Editora	Novatec,	2009.
GILMORE,	W.	J.	Dominando	PHP	e	MySQL:	do	Iniciante	ao	Profissional.	Alta	Books.	2008.
ITORIAN.	Microsoft	Technology	Journals by Abhimanyu K Vatsa.	Disponível	em	
<http://www.itorian.com/2012/09/tcp-is-stateful-protocol-and-http-is.html>	Acesso	em	
24/11/2015.
PHP	Manual.	Disponível	em	<http://php.net/manual/pt_BR/>	Acesso	em	24/11/2015.	
35
Dúvidas
Obrigado!
E-mail:	humberto@humbertomoura.com.br
36

Cookies e Sessões e PHP