-
PHP - Fundamentos Básicos
-
Lecture 1PHP – Tutorial
-
Lecture 2PHP – Introdução
-
Lecture 3PHP – Configuração de Ambiente
-
Lecture 4PHP – Visão geral da sintaxe
-
Lecture 5PHP – Tipos de Variáveis
-
Lecture 6PHP – Tipos de Constantes
-
Lecture 7PHP – Tipos de Operadores
-
Lecture 8PHP – Tomada de Decisão
-
Lecture 9PHP – Tipos de Loop
-
Lecture 10PHP – Arrays
-
Lecture 11PHP – Strings
-
Lecture 12PHP – Conceitos Web
-
Lecture 13PHP – Métodos GET e POST
-
Lecture 14PHP – Inclusão de Arquivo
-
Lecture 15PHP – Arquivos e I/O
-
Lecture 16PHP – Funções
-
Lecture 17PHP – Cookies
-
Lecture 18PHP – Sessions
-
Lecture 19PHP – Enviando e-mails usando PHP
-
Lecture 20PHP – upload de arquivo
-
Lecture 21PHP – Padrão de Codificação
-
PHP – Cookies
Cookies são arquivos de texto armazenados no computador cliente e são mantidos para fins de rastreamento de uso. PHP suporta cookies HTTP de forma transparente.
Existem três etapas envolvidas na identificação de usuários recorrentes –
- O script de servidor envia um conjunto de cookies para o navegador. Por exemplo, nome, idade ou número de identificação etc.
- O navegador armazena essas informações na máquina local para uso futuro.
- Na próxima vez que o navegador enviar qualquer solicitação ao servidor da web, ele enviará as informações dos cookies para o servidor e o servidor usará essas informações para identificar o usuário.
Este capítulo irá ensiná-lo como definir cookies, como acessá-los e como excluí-los.
A anatomia de um Cookie
Os cookies geralmente são definidos em um cabeçalho HTTP (embora o JavaScript também possa definir um cookie diretamente em um navegador). Um script PHP que define um cookie pode enviar cabeçalhos parecidos com este.
HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/html
Como você pode ver, o cabeçalho Set-Cookie contém um par nome-valor, uma data GMT, um caminho e um domínio. O nome e o valor serão codificados por URL. O campo expira é uma instrução para o navegador “esquecer” o cookie após a data e hora fornecidas.
Se o navegador estiver configurado para armazenar cookies, ele manterá essas informações até a data de expiração. Se o usuário apontar o navegador para qualquer página que corresponda ao caminho e domínio do cookie, ele reenviará o cookie ao servidor. Os cabeçalhos do navegador podem ser semelhantes a este.
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz
Um script PHP terá então acesso ao cookie nas variáveis ambientais $ _COOKIE ou $ HTTP_COOKIE_VARS [] que contém todos os nomes e valores de cookies. O cookie acima pode ser acessado usando $ HTTP_COOKIE_VARS [“nome”].
Configurando Cookies com PHP
O PHP forneceu a função setcookie () para definir um cookie. Esta função requer até seis argumentos e deve ser chamada antes da tag <html>. Para cada cookie, esta função deve ser chamada separadamente.
setcookie(name, value, expire, path, domain, security);
Aqui está o detalhe de todos os argumentos:
- Name – define o nome do cookie e é armazenado em uma variável de ambiente chamada HTTP_COOKIE_VARS. Esta variável é usada ao acessar cookies.
- Value – define o valor da variável nomeada e é o conteúdo que você realmente deseja armazenar.
- Expiry – especifica um horário futuro em segundos desde 00:00:00 GMT de 1º de janeiro de 1970. Após esse horário, o cookie ficará inacessível. Se este parâmetro não for definido, o cookie irá expirar automaticamente quando o navegador da Web for fechado.
- Path – especifica os diretórios para os quais o cookie é válido. Um único caractere de barra permite que o cookie seja válido para todos os diretórios.
- Domain – pode ser usado para especificar o nome de domínio em domínios muito grandes e deve conter pelo menos dois pontos para ser válido. Todos os cookies são válidos apenas para o host e domínio que os criou.
- Security – pode ser definido como 1 para especificar que o cookie deve ser enviado apenas por transmissão segura usando HTTPS, caso contrário, definido como 0, o que significa que o cookie pode ser enviado por HTTP normal.
O exemplo a seguir criará dois cookies com o nome e a idade em que esses cookies expirarão após uma hora.
<?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?> <html> <head> <title>Setting Cookies with PHP</title> </head> <body> <?php echo "Set Cookies"?> </body> </html>
Acessando Cookies com PHP
O PHP oferece muitas maneiras de acessar cookies. A maneira mais simples é usar as variáveis $ _COOKIE ou $ HTTP_COOKIE_VARS. O exemplo a seguir acessará todos os cookies definidos no exemplo acima.
<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php echo $_COOKIE["name"]. "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"]. "<br />"; echo $_COOKIE["age"] . "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["age"] . "<br />"; ?> </body> </html>
Você pode usar a função isset () para verificar se um cookie está definido ou não.
<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php if( isset($_COOKIE["name"])) echo "Welcome " . $_COOKIE["name"] . "<br />"; else echo "Sorry... Not recognized" . "<br />"; ?> </body> </html>
Excluindo Cookie com PHP
Oficialmente, para excluir um cookie, você deve chamar setcookie () apenas com o argumento de nome, mas isso nem sempre funciona bem e não deve ser invocado.
É mais seguro definir o cookie com uma data que já expirou:
<?php setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>Deleting Cookies with PHP</title> </head> <body> <?php echo "Deleted Cookies" ?> </body> </html>