Unidade C – Introdução a linguagem PHP – parte 4

Sessões

É muito comum em sites a necessidade de manter informações do usuário enquanto este estiver navegando (manter informações entre as diversas páginas dentro do site). O exemplo mais comum é quando você informa login e senha em algum site para acessar uma área de dados restrita ao seu usuário, por exemplo, para e-mails. Ou ainda, quando você compra pela internet e coloca os produtos escolhidos no carrinho de compras, os dados do carrinho de compras são exclusivamente seus.

Mas então, como estas informações são mantidas entre as páginas? Bem, a forma mais usual é a SESSÃO. Primeiro precisamos entender o que é a sessão, para depois vermos como trabalhar com ela em PHP.

A Sessão, de modo geral, é uma área do servidor onde podemos guardar valores para recuperar depois. Cada usuário que se conecta ao site recebe uma sessão (um identificador). Os dados colocados na sessão só são removidos quando a sessão é encerrada (navegador é fechado) ou quando a sessão expira por um período de inatividade configurado pelo programador.

Agora vamos começar a trabalhar na prática para que você entenda melhor.

A sessão precisa ser iniciada em cada página que você for usar ou definir um valor. Para abrir a sessão é só usar a função abaixo:


 

É necessário iniciar a sessão antes de qualquer echo ou de inserir qualquer HTML fora de blocos php. Geralmente o início da sessão está no começo da página.

 

Depois de iniciada a sessão você pode definir valores usando o array superglobal do PHP:


Vamos visualizar isto em uma sessão. Crie o arquivo sessao1.php conforme código da figura C29.

Ao visualizar o arquivo sessao1.php no navegador, apenas a mensagem será mostrada. Mas o que nos interessa é verificar onde a variável ficou armazenada no servidor. Como estamos trabalhando de forma local, podemos acessar estes dados. Abra a pasta c:\xampp\tmp. Você verá que um arquivo foi gerado para a sessão criada a partir do código do arquivo sessao1.php. A figura C.30 mostra a pasta com o nome do arquivo gerado. O nome do arquivo inicia com sess_ e depois vem o identificador da sessão.

Ao abrir o arquivo, é possível verificar os dados da sessão. A figura C.31 mostra o arquivo aberto no bloco de notas. Primeiro vem o nome da variável colocada na sessão, depois do pipeline vem a letra s indicando que a variável é do tipo string, e depois dos dois pontos vem o valor correspondente à variável (maria).

Contudo, uma sessão pode conter muitas variáveis. Vamos alterar um pouco nosso código para acrescentar mais variáveis. Veja como ficou na figura C.32. Também usamos agora a função session_id() que retorna o identificador da sessão, aquele que também é usado no nome do arquivo. Assim, você poderá ver no navegador o identificador da sessão. A figura C. 33 mostra o arquivo agora com as novas variáveis registradas na sessão.

Como recuperar estes dados da sessão? O código da figura C.34 mostra como verificar se existe um dado na sessão e como podemos recuperá-lo. Usamos a função isset para verifica se a variável está definida (retorna true se estiver e false se não existir).

Outras funções importantes para trabalhar com sessões são apresentadas na tabela abaixo:

Função Descrição
unset()

Exclui a uma variável específica da sessão.
Ex.:

unset($_SESSION["login"]);
session_destroy() Destrói toda a sessão, eliminando todas as variáveis salvas nela. Antes de chamar a função session_destroy(), deve-se primeiro abrir a sessão com session_start().Essa função é normalmente utilizada quando um usuário requisita sua saída da aplicação (logout).

session_cache_expire()

Retorna o tempo de expiração da sessão ou define novo tempo de expiração em minutos.
Para redefinir o tempo de expiração, deve ser executada antes de session_start().
O tempo padrão de duração da sessão é de 180 minutos.

Para alterar o tempo padrão, deve-se chamar session_cache_expire() a cada página que faça uso da sessão.