Documente Academic
Documente Profesional
Documente Cultură
e Sesses
Cookies
e
Sesses
HTTP
um
protocolo
que
no
mantm
estado
(no
tem
memria);
Cada
pedido
que
o
browser
faz
ao
servidor
independente; Algumas
aplicaes
precisam
manter
o
estado
das
variveis
entre
as
pginas;
Carrinho
de
compras; Cadastro
com
vrios
passos; Questionrios
com
vrias
pginas...
Prof. Claunir Pavan
Cookies
http://www.php.net/manual/pt_BR/function.setcookie.php
Um
cookie
pode
ter
parmetros
para: expirar
em
uma
data/hora
determinada; restringir
o
seu
envio
um
determinado
domnio... Podem
ser
usados
para: Manter
preferncias
de
usurio
entre
visitas; Armazenar
detalhes
de
login... Browsers
podem
guardar
20
cookies
de
cada
domnio; No
podem
ter
mais
de
4KB; Usurios
podem
desabilitar
cookies
no
browser; Cookies
podem
ser
lidos
somente
a
partir
do
domnio
que
os
gerou
(por
questes
de
segurana);
Prof. Claunir Pavan
Cookies
em
PHP
A
funo
setcookie
do
PHP
gera
o
cabealho
HTTP_COOKIE; Os
cookies
cam
disponveis
atravs
do
array
$_COOKIE; Exemplos:
index.php
<?php //Define um cookie chamado count, que expira depois de 1 hora (3600 segundos) if(!isset($_COOKIE["count"])){ $count = 0; setcookie("count", $count, time()+3600); } // define o timezone padro. date_default_timezone_set('America/Sao_Paulo');
Formato alternativo
$umAno = time() + 60 * 60 * 24 * 365; // $umAno = time() + (strtotime(+1 year)-strtotime(now)); setcookie("visit", date("d/m/Y - G:i:s") , $umAno); ?> <!-- Continua no prximo slide -->
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/ xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Exemplo do uso de cookies</title> </head> <body> <?php print_r($_COOKIE); ?> <!-- //somente para verificao do estado da varivel --> <h1>O cookie foi criado com o valor: <?php echo isset($_COOKIE["count"]) ? $_COOKIE["count"] : '' ; ?></h1> <h3><a href="incCookie.php">Clique aqui para incrementar</a></h3> <h3><a href="apagaCookie.php">Clique aqui para apagar</a></h3> <?php if(isset($_COOKIE["visit"])){ echo "<h2>Seu ltimo acesso foi em: " . $_COOKIE["visit"] . "</h2>"; } ?> </body> </html>
Prof. Claunir Pavan
incCookie.php
<?php // verifica se o cookie est definido e incrementa o valor e grava o cookie novamente if(isset($_COOKIE["count"])){ $count = $_COOKIE["count"]; $count++; setcookie("count", $count, time()+3600); } header("Location:index.php"); ?>
apagaCookie.php
<?php // verifica se o cookie est definido e o elimina if(isset($_COOKIE["count"])) { setcookie("count", false); } if(isset($_COOKIE["count"])) { setcookie("visit", false); } header("Location:index.php"); ?>
Sesses
Uma
sesso
um
perodo
de
tempo
em
que
o
usurio
visita
um
conjunto
de
pginas;
Sesses
-
funcionamento
Um
identicador
nico
de
usurio
(UID),
id
da
sesso,
criado
para
cada
visitante
:
26fe536a534d3c7cde4297abb45e275a As
variveis
de
sesso
so
armazenadas
com
base
em
cada
UID; O
id
da
sesso
armazenado
num
cookie,
ou
propagado
via
URL
entre
pginas
enquando
o
usurio
navega;
Esta
funo
deve
aparecer
ANTES
da
tag
<html>; O
PHP
faz
todo
o
trabalho:
procura
por
uma
sesso
vlida
(id)
nas
superglobals
$_COOKIE
e
$_GET; sesso
criada;
O
cookie
expira
quando
o
navegador
fechado.
Propriedades
do
cookie
podem
ser
denidas
com
session_set_cookie_params;
Exemplo:
Exemplos
ex1.php
<?php session_start(); if(isset($_SESSION['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; echo "Views=". $_SESSION['views']; ?>
Exemplos
<?php session_start();
pagina1.php
echo "Pgina 1"; $_SESSION["nome"] = "Fulano"; $_SESSION["sobrenome"] = "de tal"; $_SESSION["data"] = time(); //este link s funciona se os cookies forem aceitos echo "<br /><a href=\"pagina2.php\">Pgina 2 </a>"; //este link funciona mesmo sem cookies echo "<br /><a href=\"pagina2.php?" . htmlspecialchars(SID) . "\">Pgina 2 </a>"; ?>
Prof. Claunir Pavan
Exemplos
pagina2.php
<?php session_start(); echo "Pgina 2"; echo "<br />" . $_SESSION["nome"] . " " . $_SESSION["sobrenome"]; echo "<br />" . date("d/m/Y - G:i:s", $_SESSION["data"]); ?>
Unset usada para eliminar uma varivel da sesso: unset($_SESSION['views']); session_destroy elimina a sesso toda: session_destroy();