Sessões PHP

As variáveis de sessão PHP são usadas para armazenar informações sobre a sessão do usuário ou alterar as configurações da sessão do usuário. As informações armazenadas nas variáveis de sessão são únicas para um usuário e podem ser usadas em todas as páginas do aplicativo.

Variáveis de sessão PHP

Quando você executa um aplicativo, você o abre, faz algumas alterações e fecha. Isso é muito parecido com uma sessão. O computador sabe quem você é. Ele sabe quando você iniciou o aplicativo e quando o encerrou. Mas na internet, há um problema: o servidor não sabe quem você é nem o que você está fazendo, isso devido ao fato de que o endereço HTTP não pode manter o estado.

Armazenando informações do usuário no servidor para uso posterior, o PHP session resolve esse problema (por exemplo, nome do usuário, produtos comprados, etc.). No entanto, as informações da sessão são temporárias e serão excluídas após o usuário sair do site. Se você precisar armazenar informações permanentemente, pode armazenar os dados em um banco de dados.

O mecanismo de trabalho da sessão é: criar um id único (UID) para cada visitante e armazenar variáveis com base neste UID. O UID é armazenado em um cookie ou transmitido através da URL.

Iniciar sessão PHP

Antes de armazenar informações do usuário na sessão PHP, você deve primeiro iniciar a sessão.

Notas:A função session_start() deve estar antes das tags <html>:

<?php session_start(); ?>
<html>
<body>
</body>
</html>

O código acima registra a sessão do usuário no servidor, permitindo que você comece a salvar informações do usuário, além de atribuir um UID à sessão do usuário.

Armazenar variáveis de sessão

O método correto para armazenar e recuperar variáveis de sessão é usar a variável $_SESSION do PHP:

<?php
session_start();
//armazenar dados da sessão
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//recuperar dados da sessão
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

Saída:

Pageviews=1

Neste exemplo, criamos um simples contador de page-view. A função isset() verifica se a variável "views" foi configurada. Se "views" já foi configurada, acumulamos o contador. Se "views" não existir, criamos a variável "views" e a configuramos como 1:

<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

Encerrar Session

Se você desejar excluir alguns dados de session, você pode usar a função unset() ou session_destroy().

A função unset() é usada para liberar a variável de session especificada:

<?php
unset($_SESSION['views']);
?>

Você também pode encerrar completamente a session através da função session_destroy():

<?php
session_destroy();
?>

Notas:session_destroy() resetará a session, você perderá todos os dados de session armazenados.