A página sessoes.php é quem verifica se há uma sessão aberta, tendo portanto, uma função de autenticação. Mas como fazer para que estas autenticações sejam chamadas pelas demais páginas do sistema? Simples! Através do código <? include('sessoes.php'); ?> que deve estar presente na primeira linha de cada página que se deseja autenticar. Só isso!
Quando uma página restrita for acessada (pedidos.php, por exemplo), mesmo que seja digitando sua URL no navegador, esta simples linha "chama" a página sessoes.php e esta faz seu trabalho de autenticar.
Se o resultado for positivo, nada acontecerá, portanto a página volta a ser exibida normalmente. Se o resultado da autenticação for negativo a segunda linha nem chegará a ser carregada, porque o arquivo sessoes.php jogará imediatamente o cliente para a página login.php.
Não esqueça de que o comando include('sessoes.php') deve ser colocado na primeira linha de todas as páginas php.
Entenda que, quando usamos um comando include, o php faz uma pausa no arquivo atual e vai ler o arquivo contido no include. Só quando acaba de ler o arquivo do include é que ele volta a ler a segunda, terceira, quarta e demais linhas do arquivo atual.
Criando o Logoff
Já que temos a autenticação toda pronta, agora vamos criar um arquivo chamado logoff.php que será responsável por encerrar a sessão. Este recurso é apenas um cuidado a mais, porque na verdade, quando o usuário fecha o navegador a sessão é encerrada, mas pode acontecer casos em que ele queira encerrar a conexão, mas também continuar com seu navegador aberto.
O código é bem simples e, resumidamente, trata-se apenas de mudar o valor do campo status de ABERTA para FECHADA e gravar a hora que isso aconteceu. Simples!
<? # Inicia uma sessão. Esta deve ser obrigatoriamente a primeira linha do arquivo.
session_start();
?>
<? #Grava o número da sessão criada numa variável, chamada $sessid.
$sessid = session_id();
?>
# Guarda a data numa variável, no formato do MySql (AAAA-MM-DD)
$hoje_data = date("Y-m-d");
# Guarda a Hora numa variável
$hoje_hora = date("H:i:s");
# Faz a conexão com o banco de dados
$conexao = mysql_connect('localhost', 'root', 'minhasenha');
mysql_select_db('nome_do_bd', $conexao);
# Seleciona o registro referente a sessão atual
# Muda o campo status para FECHADA
# Informa a data e hora de fechamento
mysql_query("UPDATE sessoes SET status=FECHADA', datafecha='$hoje_data', horafecha='$hoje_hora' WHERE sessao='$sessid'", $conexao);
# Destrói as sessões
session_unset();
session_destroy();
# Redireciona o cliente para a tela de login
header("Location: login.php");
?>
Você pode colocar um link simples para esta página em qualquer ligar do seu sistema de login. A exemplo do Google coloque no canto superior direito, de forma discreta. Pode ser associado a uma imagem, de um cadeado, por exemplo.
É aconselhável colocar uma caixa de confirmação em JavaScript, perguntando se o usuário realmente deseja efetuar logoff.