Sessões no PHP

Uma variável de sessão no PHP é usada para guardar informações sobre, ou mudar configurações para uma sessão de usuário. Variáveis de sessão guardam informações sobre apenas um usuário e estão disponíveis para todas as páginas na aplicação.

Variáveis de sessão no PHP

Quando você esta trabalhando com uma aplicação, você abre, faz algumas alterações então você fecha. Isso é exatamente o que é uma Sessão. O computador sabe quem é você. Ele sabe quando você iniciou a aplicação e quando você fechou. Mas na internet existe um problema: o servidor não sabe quem é você e o que você faz porque o endereço HTTP não guarda essas informações.

Uma sessão PHP resolve este problema permitindo a você guardar informações de usuários no servidor para que sejam usadas posteriormente (por exempo, nome do usuário, cesta de compras, etc). No entanto, as informações de sessão são temporarias e serão apagadas depois que o usuário deixar o site. Se você precisar de guardar os dados de forma permanente o melhor é usar um banco de dados.

As sessões funcionam criando um id único (UID) para cada visitante e guardando valores baseados neste UID. O UID é ou guardado em cookies ou colocado em cada URL.

Iniciando uma Sessão PHP

Antes de você poder guardar informações na sua sessão PHP você deve iniciar a sessão.

Nota: A função session_start() deve aparecer antes da tag &lthtml> ou de qualquer comando echo.
   1:<?php session_start(); ?>
2:<html>
3:<body>
4:</body>
5:</html>

O código acima irá registar a sessão do usuário no servidor ,permitir que você salve informações do usuário e criar um UID para aquela sessão de usuário.

Guardando uma variável na sessão

A forma correta de se guardar e obter valores da sessão é usando a variável $_SESSION:
   1:<?php
2:session_start();
3:// store session data
4:$_SESSION['visitas']=1;
5:?>
6:<html>
7:<body>
8:<?php
9://retrieve session data
10:echo "Visitas=". $_SESSION['visitas'];
11:?>
12:</body>
13:</html>


Saida:

Pageviews=1

No exemplo abaixo, nos criamos o contador de vistitas. A função isset() verifica se a variável "visitas" já existe. Se "visitas" já existe, nós podemos incrementar o contador. Se "visitas" não existe, nós criamos a variável "visitas" e ajustamos o seu valor para 1:

   1:<?php
2:session_start();
3:if(isset($_SESSION['visitas']))
4: $_SESSION['views']=$_SESSION['visitas']+1;
5:
6:else
7: $_SESSION['visitas']=1;
8:echo "Views=". $_SESSION['visitas'];
9:?>


Destruindo a sessão

Se você quiser apagar algum dado da sessão você pode usar a função unset() ou a função session_destroy().

A função unset() é usada para excluir a variável de sessão especificada:
   1:<?php
2:unset($_SESSION['visitas']);
3:?>
Você pode também apagar completamente a sessão chamando a função session_destroy():
   1:<?php
2:session_destroy();
3:?>
Nota: A função session_destroy() irá apagar sua sessão e você perderá todos os dados guardados nela.

3 comentários: