Sessions e Cookies progweb2@thiagomiranda.net
Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net
Cookies e Sessions Geralmente, um bom projeto de site precisa manter informações sobre acesso durante o tempo em que o usuário estiver em seu site, ou mesmo depois que o usuário não estiver mais em sua página; Podemos armazenar informações a respeito da conexão do usuário através de: Cookies (informações armazenadas na máquina cliente); Sessões (informações armazenadas no servidor).
Utilização de Cookies e Sessions Autenticação de usuários: Para cadastros, proteção de conteúdo exclusivo, etc... Carrinho de compras: nos sítios de comércio eletrônico, para armazenar os dados das compras feitas pelo usuário; Exibição de anúncios ou imagens: controlar quantas vezes uma propaganda foi exibido na página; Personalização de páginas: por exemplo, um sítio de uma livraria virtual poderia exibir um anúncio de um livro de culinária, caso o usuário fizesse uma pesquisa por "culinária", na última vez que acessou a página.
Cookies Cookies são arquivos de texto; Ficam armazenados no computador cliente, definida ou indefinidamente; Podem ser usados em qualquer aplicação que necessite: Compartilhar dados entre páginas diferentes; Compartilhar dados entre diferentes acessos (dias e horários distintos)
Cookies Programação WEB II Um cookie é um pequeno arquivo que o servidor embute no computador do usuário. Todas as vezes que o mesmo computador requisita uma página com o browser ele também envia o cookie. Com PHP, você pode criar e retornar os valores dos cookies. Como criar um cookie? A função setcookie() é usada para setar um cookie. Nota: A função setcookie() deve aparecer ANTES da tag <html>.
Parâmetros setcookies Programação WEB II A função setcookie() envia um cookie para o computador do usuário; Sintaxe: A função setcookie() retorna um valor verdadeiro ou falso; Nome: indica o nome do cookie que está sendo criado é o único parâmetro obrigatório; Valor: é o valor do nome. Se não for fornecido, o servidor irá excluir o cookie com o nome especificado (para navegadores Firefox e afins. Para o IE, o apagamento de cookies é feito de outra forma); Validade:define o tempo de validade do cookie. Deve ser expresso no formato padrão do UNIX (número de segundos após 1º de janeiro de 1970, às 0h00min).
Parâmetros setcookies Programação WEB II setcookie(name, value, expire, path, domain) name: nome do cookie. Campo obrigatorio. value: valor que o cookie armazena. Opcional. expire: determina quando o cookie expira. Default: quando o navegador for fechado. Opcional. path: pastas do servidor para as quais o cookie estará disponvel. "/"indica todo o domnio. Default: diretorio corrente. Opcional. domain: domínio onde o cookie estara disponvel. Opcional.Criar, no computador do cliente, um cookie de nome maria:
Parâmetros setcookies Programação WEB II Criar, no computador do cliente, um cookie de nome maria: setcookie("nome", "maria"); Apagar o cookie "nome": setcookie("nome"); Definir que o cookie "nome" tenha validade de 2 dias: setcookie("nome", "maria", time()+3600*48); De onde veio 3600*48? Veio de 60seg * 60min * 24h * 2, que é o número de segundo em 2 dias.
Parâmetros setcookies <?php $valor = Thiago ; setcookie ( "CookieTeste", $valor );?> / * expira em uma hora * / setcookie("cookieteste", $valor, time()+3600);
Cookies Programação WEB II O envio de cookies deve ser a primeira coisa a ser feita num script PHP. A função setcookie deve aparecer antes de qualquer tag HTML ou qualquer espaço ou linha em branco. Se isso não for respeitado, o PHP reportará um erro; Um cookie não pode ser usado (acessado ou apagado) dentro do próprio script que o criou; você apenas define o cookie em determinado script, mas não o manipula. Visto que o script que o criou ainda não terminou, o navegador não recebeu os comandos do servidor e, portanto, o cookie fisicamente ainda não existe. Somente depois do script terminado, é que outro script no servidor poderá acessar seus valor ou apagá-lo.
Parâmetros setcookies Programação WEB II
Acesso aos Cookies Feito através do vetor superglobal $_COOKIE[]; Exemplo: Se você definiu um cookie no script A, da seguinte forma: setcookie("nome", "juliano"); Pode acessar seu valor no script B assim: $meucookie = $_COOKIE["nome"]; Desta forma, o conteúdo do cookie "nome" será guardado dentro da variável PHP $meucookie.
Acesso aos Cookies ACESSO AO COOKIE: ATRAVÉS DAS VARIÁVEIS PRÉ-DEFINIDAS $_COOKIE[' nome_cookie ']; $HTTP_COOKIE_VARS[' nome_cookie '];
No Internet Explorer Usar setcookie("nome", "valor") não cria o cookie; Usar setcookie("nome", "valor", time()+60) cria o cookie. Números positivos menores de 60 não funcionam no IE7 ou versões anteriores; Atualmente, todas a versões em uso do IE permitem, no máximo, a criação de 50 cookies por domínio. Cookies acima deste número são ignorados. Se, anteriormente, você criou o cookie com setcookie("nome", "maria", time()+3600*10), para apagá-lo, use setcookie("nome", "maria", time()-3600*10);
Verificando se um Cookie Existe Programação WEB II
Excluindo um Cookie Programação WEB II Ao excluir um cookie, você deve se assegurar que a data de validade está no passado. Exemplo de exclusão: <?php // seta a data de expiração para uma hora atrás setcookie( usuario", "", time() - 3600);?>
Vamos Praticar Programação WEB II Usando cookies, crie um script que diga ao usuário se ele já entrou no site: caso ele já tenha entrado, mostra quantas vezes ele já entrou; caso contrário, mostra um aviso de que é a primeira vez.
Sessions Programação WEB II Assim como os cookies, as sessões também têm a função de manter informações a respeito das páginas que estão sendo abertas naquele momento; Uma sessão tem início no momento em que uma das páginas do domínio é aberta e uma sessão termina quando a última página de um domínio é fechada. Em navegadores que funcionam por meio de abas, uma sessão só é encerrada quando o navegador é fechado completamente, e não somente a aba que estava sendo utilizada para navegar no sítio em questão.
Sessions Programação WEB II Podemos utilizar sessões para propagar o conteúdo de uma variável entre diversos scripts de nosso site; No momento em que uma sessão é aberta, todos os scripts em PHP que rodarem sob aquela sessão e pertencerem a ela podem compartilhar valores de variáveis entre si.
Sessions A chamada da função em PHP que cria uma sessão deve ser efetuada antes que o servidor envie qualquer informação de retorno para o navegador (antes de qualquer código XHTML ou comando echo()); A função que cria ou abre uma sessão é:
Sessions Registrar variáveis de sessão significa que variáveis PHP criadas em diferentes scripts no servidor poderão compartilhar seus valores, desde que os scripts pertençam todos a uma mesma sessão. Lembrar que uma sessão pode ser iniciada no momento em que o navegador acessa qualquer página e nosso sítio e termina nomomento em que o navegador é fechado e encerra a conexão com o servidor, mesmo que nenhuma variável de sessão seja criada; Utilizamos o array superglobal $_SESSION();
Sessions Criar uma variável de sessão chamada "idade" e atribuir a ela o inteiro 1: Criar uma variável de sessão chamada "nome" e atribuir a ela o seu nome:
Sessions session_id() e session_name() Identifica qual session está sendo usada, caso possuam mais páginas com sessions abertas e com mesmas variáveis. Se id não for inicializado a session será inicializada em um id que não esteja sendo usado no momento.
Sessions Quando as variáveis de sessão não são mais necessárias, elas devem ser destruídas e eliminadas da memória do script com a função abaixo (elimina TODAS as variáveis): Para eliminar uma única variável de sessão (por exemplo, a variável de sessão "senha"):
Encerrar uma Sessão Excluir as variáveis criadas em uma sessão não fecha a sessão. Para encerrarmos uma sessão aberta no PHP, chamamos a função:
Sessions <?php session_start(); echo("esta é a primeira página uma sessão está aberta"); $_SESSION["nome"] = "Carlos"; $_SESSION["sobrenome"] = "da Silva"; $_SESSION["data"] = date("d/m/y"); echo("<br /><a href=\"pagina2.php\"> Página 2 </a>");?>
Sessions <?php session_start(); echo("esta é a segunda página, que trará dados da primeira página <br />"); $nome = $_SESSION["nome"]; $sobrenome = $_SESSION["sobrenome"]; $data = $_SESSION["data"]; echo("$nome $sobrenome, hoje é $data"); $_SESSION = array(); session_destroy();?>
Função de redirecionamento O atributo Location: da função de cabeçalho header(); age como um redirecionador. Exemplo: header( location: http://www.google.com.br ); Exit;
Atividade Prática Programação WEB II Juntando tudo o que foi aprendido até agora, crie um script de login de usuários. Esse script de login deve conter: - Um formulário com os campos login e senha; -Um arquivo TXT com os dados do usuário, que serão Login, Senha e Descrição. - Uma página que valide esse dados e caso os dados estejam corretos, redirecione para a página seguinte. - Uma página própria para o usuário onde irá apresentar seus dados, essa página não pode ser acessível sem o usuário estar logado. - Deve ser usado Sessions para manter o usuário logado; - Identifique se o usuário logou na página nos útimos 10 minutos (usando cookies) - Deve haver uma página/link para o usuário se deslogar.