Curso de PHP: Armazenando informações em sessão ($_SESSION)
No texto passado, expliquei como fazer o uso de cookies para armazenar informações. O problema maior no uso de cookies é que todas as informações ficam armazenadas na máquina do usuário, o que não oferece nenhuma garantia que a informação não será alterada sem o nosso controle.
Uma sessão utiliza, por padrão, um arquivo armazenado no servidor para guardar informações. Cada sessão tem um ID, que é passado para o usuário. Esse ID é a única ligação entre o usuário e o arquivo do servidor. Se o ID for perdido, o usuário perderá as informações e até poderá estar acessando informações de outro usuário. Por esse motivo, esse ID é armazenado em cookie ou passado via URL.
Quando passado via URL aumenta-se em muito o risco do roubo de sessão, que é uma falha de segurança muito comum, infelizmente. Porém, quando se armazena em cookie, o risco apesar de ser menor, não é estingüido. Para evitar esses riscos de segurança existem algumas práticas que será assunto de um novo post. O ponto importante aqui é que nem sempre usando sessões, você deixará de usar cookies.
Iniciando uma sessão
A sessão, quando utilizado cookies, deve ser inicializada antes de qualquer saída HTML, pois, o cookie com o ID da sessão deve ser enviado ao usuário.
O comando para iniciar uma sessão é o session_start(). Veja seu uso:
<?php
session_start();Armazenando um valor em uma variável de sessão:
<?php
session_start();
$_SESSION['nome'] = 'Edgar Ferreira da Silva';
?>Salve essa página como criasessao.php. Veja que o uso da variável $_SESSION é o mesmo que o uso da variável $_COOKIE. O acesso é feito como um array.
Resgatando o valor de uma variável:
<?php
session_start();
echo $_SESSION['nome'];
?>Salve esse arquivo como exibesessao.php. Pronto. A troca de informação está sendo feita. Passamos uma variável para outra página facilmente.
Destruindo a sessão:
<?php
session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-3600, '/');
}
session_destroy();
?>Para ter certeza que destruímos a sessão e qualquer ligação á ela, primeiro limpamos o array $_SESSION. Depois, apagamos o cookie (se estiver sendo utilizado) que indica o ID da sessão. Depois utilizamos o session_destroy, que elimina qualquer associação com o arquivo no servidor.
No próximo POST, explicarei como usar as sessões de forma customizada.
- Login to post comments




