Sessão & Cookies PHP com Exemplo

Índice:

Anonim

O que é Cookie?

Um cookie é um pequeno arquivo com o tamanho máximo de 4 KB que o servidor da web armazena no computador cliente.

Depois que um cookie é definido, todas as solicitações de página que se seguem retornam o nome e o valor do cookie.

Um cookie só pode ser lido no domínio do qual foi emitido. Por exemplo, um cookie definido com o domínio www.guru99.com não pode ser lido no domínio career.guru99.com.

A maioria dos sites na Internet exibe elementos de outros domínios, como publicidade. Os domínios que atendem a esses elementos também podem definir seus próprios cookies. Eles são conhecidos como cookies de terceiros.

Um cookie criado por um usuário só pode ser visível para ele. Outros usuários não podem ver seu valor.

A maioria dos navegadores da web tem opções para desativar cookies, cookies de terceiros ou ambos.

Se for esse o caso, o PHP responde passando o token do cookie na URL.

O diagrama mostrado abaixo ilustra como os cookies funcionam.

Aqui,

1) Um usuário solicita uma página que armazena cookies

2) O servidor define o cookie no computador do usuário

3) Outras solicitações de página do usuário retornarão o nome e o valor do cookie

Neste tutorial, você aprenderá-

  • Por que e quando usar cookies?
  • Criando Cookies
  • Recuperando o valor do Cookie
  • Apagar cookies
  • O que é uma sessão?
  • Por que e quando usar Sessões?
  • Criando uma Sessão
  • Destruindo Variáveis ​​de Sessão

Por que e quando usar cookies?

  • Http é um protocolo sem estado; Os cookies nos permitem rastrear o estado do aplicativo usando pequenos arquivos armazenados no computador do usuário.

    O caminho onde os cookies são armazenados depende do navegador.

    O Internet Explorer geralmente os armazena na pasta Arquivos Temporais da Internet.

  • Personalização da experiência do usuário - isso é conseguido permitindo que os usuários selecionem suas preferências.

    As páginas solicitadas a seguir são personalizadas com base nas preferências definidas nos cookies.

  • Rastrear as páginas visitadas por um usuário

Criando Cookies

Vejamos agora a sintaxe básica usada para criar um cookie.

AQUI,

  • Php “setcookie” é a função PHP usada para criar o cookie.
  • “Cookie_name” é o nome do cookie que o servidor usará ao recuperar seu valor da variável de array $ _COOKIE. É obrigatório.
  • “Cookie_value” é o valor do cookie e é obrigatório
  • “[Expiry_time]” é opcional; ele pode ser usado para definir o tempo de expiração do cookie, como 1 hora. A hora é definida usando as funções PHP time () mais ou menos um número de segundos maior que 0, ou seja, time () + 3600 por 1 hora.
  • “[Cookie_path]” é opcional; ele pode ser usado para definir o caminho do cookie no servidor. A barra “/” significa que o cookie será disponibilizado em todo o domínio. Os subdiretórios limitam o acesso aos cookies para o subdomínio.
  • “[Domínio]” é opcional, pode ser usado para definir a hierarquia de acesso ao cookie, ou seja, www.cookiedomain.com significa domínio inteiro, enquanto www.sub.cookiedomain.com limita o acesso ao cookie a www.sub.cookiedomain.com e seu sub domínios. Observe que é possível ter um subdomínio de um subdomínio, desde que o total de caracteres não exceda 253 caracteres.
  • “[Seguro]” é opcional, o padrão é falso. É usado para determinar se o cookie é enviado via https se estiver definido como verdadeiro ou http se estiver definido como falso.
  • “[Httponly]” é opcional. Se for definido como verdadeiro, apenas as linguagens de script do lado do cliente, ou seja, JavaScript, não poderão acessá-las.

Nota: a função de cookie set php deve ser executada antes da tag de abertura HTML.

Vejamos agora um exemplo que usa cookies.

Vamos criar um programa básico que nos permite armazenar o nome do usuário em um cookie que expira após dez segundos.

O código abaixo mostra a implementação do exemplo acima “cookies.php”.

Resultado:

the cookie has been set for 60 seconds

Recuperando o valor do Cookie

Crie outro arquivo denominado “cookies_read.php” com o seguinte código.

Resultado:

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Nota: $ _COOKIE é uma variável super global do PHP.

Ele contém os nomes e valores de todos os cookies definidos.

O número de valores que o

O array $ _COOKIE pode conter depende do tamanho da memória definido no php.ini.

O valor padrão é 1 GB.

Testando nosso aplicativo.

Vamos supor que você salvou seus arquivos PHP na pasta phptus.

  • Etapa 1 - abra seu navegador da web e digite a URL http: //localhost/phptuts/cookies_read.php

Nota: Apenas uma matriz vazia foi exibida

  • Etapa 2 - Navegue até o URL http: //localhost/phptuts/cookies.php

  • Etapa 3 - Volte para a primeira guia e clique no botão Atualizar

Aguarde um minuto e clique no botão Atualizar novamente. Quais resultados você conseguiu?

Apagar cookies

  • Se você deseja destruir um cookie antes de seu tempo de expiração, defina o tempo de expiração como um tempo que já passou.
  • Crie um novo campo denominado cookie_destroy.php com o seguinte código
  • Repita as etapas de 1 a 3 da seção acima sobre como recuperar valores de cookies.
  • Abra o URL http: //localhost/phptuts/cookie_destroy.php
  • Mude para o URL http: //localhost/phptuts/cookies_read.php que resultados ele exibe?

O que é uma sessão?

  • Uma sessão é uma variável global armazenada no servidor.
  • Cada sessão é atribuída a um id único que é usado para recuperar os valores armazenados.
  • Sempre que uma sessão é criada, um cookie contendo o id único da sessão é armazenado no computador do usuário e retornado com cada solicitação ao servidor. Se o navegador do cliente não suportar cookies, a id de sessão php única é exibida na URL
  • As sessões têm a capacidade de armazenar dados relativamente grandes em comparação com os cookies.
  • Os valores da sessão são excluídos automaticamente quando o navegador é fechado. Se você deseja armazenar os valores permanentemente, deve armazená-los no banco de dados.
  • Assim como a variável de array $ _COOKIE, as variáveis ​​de sessão são armazenadas na variável de array $ _SESSION. Assim como os cookies, a sessão deve ser iniciada antes de qualquer tag HTML.

Por que e quando usar Sessões?

  • Você deseja armazenar informações importantes, como a id do usuário com mais segurança no servidor, onde usuários mal-intencionados não podem interferir com elas.
  • Você deseja passar valores de uma página para outra.
  • Você deseja a alternativa aos cookies em navegadores que não oferecem suporte a cookies.
  • Você deseja armazenar variáveis ​​globais de uma maneira eficiente e mais segura em comparação com passá-las na URL
  • Você está desenvolvendo um aplicativo como um carrinho de compras que precisa armazenar temporariamente informações com uma capacidade maior que 4 KB.

Criando uma Sessão

Para criar uma sessão, você deve primeiro chamar a função PHP session_start e então armazenar seus valores na variável de array $ _SESSION.

Vamos supor que queremos saber quantas vezes uma página foi carregada, podemos usar uma sessão para fazer isso.

O código abaixo mostra como criar e recuperar valores de sessões

Resultado:

You are visitor number 1

Destruindo Variáveis ​​de Sessão

A função session_destroy () é usada para destruir todas as variáveis ​​de sessão Php.

Se você quiser destruir apenas um único item da sessão, use a função unset ().

O código a seguir ilustra como usar os dois métodos.

Session_destroy remove todos os dados da sessão, incluindo cookies associados à sessão.

Não definido libera apenas as variáveis ​​de sessão individuais.

Outros dados permanecem intactos.

Resumo

  • Cookies são pequenos arquivos salvos no computador do usuário
  • Os cookies só podem ser lidos no domínio emissor
  • Os cookies podem ter um tempo de expiração, se não for definido, o cookie expira quando o navegador é fechado
  • As sessões são como variáveis ​​globais armazenadas no servidor
  • Cada sessão recebe um id de identificação exclusivo que é usado para rastrear as variáveis ​​de um usuário.
  • Os cookies e as sessões devem ser iniciados antes que qualquer tag HTML seja enviada ao navegador.