Controle De Sessão no PHP
Autor: Fernando S.Costa | Publicado: 2009-01-19T07:13:00-08:00

Se você quiser saber se uma pagina está sendo requisitada pelo mesmo usuário que antes e ainda quer que as variáveis criadas anteriormente ainda permaneçam como definidas, você provavelmente deverá usar controle de sessão.Nesta primeira parte, apenas uma introdução.Recentemente, lendo em livros e posteriormente na Internet, pude saber mais sobre o protocolo HTTP, de como é a comunicação cliente/servidor. Uma das coisas que podemos aprender e que pode ser importante saber quando estamos desenvolvendo um sistema seguro a fraudes de usuários, é entender que: “No protocolo HTTP nenhuma informação de estado é passada”. Ou seja, não podemos contar com o protocolo HTTP se quisermos verificar se o usuário que fez a requisição anterior é o mesmo que fez a seguinte, isso é a privacidade do usuário sendo tratada aqui e portando, temos que nos virar para encontrar uma solução.Quando declaramos o inicio de uma sessão e com ela suas variáveis, o PHP armazena em um arquivo comum de dados, no servidor, uma cópia destas informações. Essas informações são encontradas por meio de uma ID única de sessão, gerada pelo próprio HTTP para o usuário e está ID é armazenada no lado do cliente por duas maneiras. Ou pelo uso de cookies, ou pelo envio na URL.Quando usamos sessões, a única variável que é armazenada no lado do cliente, como dito acima, é a ID de sessão. Quando passada para o servidor, via URL ou cookie, este poderá encontrar as variáveis que antes foram definidas para este determinado usuário.Algo importa para se dizer é que, hoje, comumente, até as versões mais antigas de browsers possuem recursos de cookies, e, portanto é interessante preservar a ID de sessão em um cookie do que sujar a URL da nossa pagina estamos tratando de SEO aqui.Claro, mantendo o ID de sessão na URL, você terá maior garantia de que mais usuários terão acesso a paginas controladas por sessões, isso é uma questão de usabilidade. Pense que o usuário poderá estar com os cookies desabilitados. Existem formas de saber se o usuário possui os cookies habilitados em seu navegador e assim pedir gentilmente que os habilite caso não esteja.Configurando Cookies com o PHPVocê pode configurar cookies utilizando a função setcookie().bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )Assim sendo, você poderá declarar um cookie da seguinte forma:A forma acima é a mais simples de definição.Você poderá definir uma data para que essa variável expire, ou seja, deixe de existir:Repare que devemos utilizar um numero inteiro para o valor da data no “formato UNIX de ser”. Uma maneira fácil para isso é:use a função time() para pegar a data atual e adicione o tempo que você quer em segundos. No caso acima, 3600 segundos, que é igual a 1 hora.  Assim, já declarado nosso cookie. Quando o usuário visitar a próxima pagina de seu site (ou recarregar a pagina atual), você terá acesso ao cookie por meio da super global $_COOKIE['meu_cookie'].Mas bem, porque estou falando disso? Quando estamos trabalhando com Sessões, elas fazem tudo isso para nós!  Até a Próxima.