Trabalhar com Sessions em PHP é essencial para a utilização de autenticação de usuários em aplicações web. Assim que um usuário está logado, é importante gerenciar sua sessão para garantir tanto a segurança quanto a experiência do usuário. Neste tutorial, vou te mostrar como usar Sessions efetivamente para verificar se um usuário está logado e como ele pode sair.
Principais conclusões
- A importância das Sessions para a autenticação de usuários.
- Verificar se um usuário está logado.
- Criar a função de logout.
Guia passo a passo
Passo 1: Inicializar a Session
Para trabalhar com Sessions, você precisa inicializá-las primeiro. Para isso, utiliza-se a função PHP session_start(). Primeiro, você deve garantir que essa função só seja chamada quando a Session ainda não estiver ativa.

Primeiro, você deve definir um método em sua classe User que inicializa a Session. Você pode fazer isso em uma função estática para iniciar a Session apenas uma vez.
Passo 2: Verificar se o usuário está logado
Agora que você inicializou a Session, é hora de verificar se o usuário realmente está logado. Para isso, você cria um método isLoggedIn().

Esse método deve verificar se um certo valor da Session, por exemplo, userID, está definido. Se isso for verdade, você retorna true; caso contrário, false.
Passo 3: Integração em sua aplicação
Agora que os métodos para inicializar e verificar o login estão criados, você pode usá-los em sua aplicação. Você pode verificar em vários lugares – por exemplo, no template – se o usuário está logado e oferecer links correspondentes.

No seu template HTML, você acrescenta um link para logout, caso o usuário esteja logado; caso contrário, você oferece um link de login.
Passo 4: Criar a função de Logout
Para implementar uma funcionalidade de logout, crie um novo método em sua classe User que destrói a Session ao fazer logout.

Esse método, que você pode chamar de logout(), chama a função session_destroy(). Isso encerra a Session e desconecta o usuário da aplicação.
Passo 5: Implementar a ação de Logout
Após a definição da função de logout, você deve chamá-la em uma ação de logout específica. No seu controlador de índice, você deve colocar a chamada ao método logout() em um local apropriado.

Adicionalmente, você deve garantir que o usuário seja redirecionado para a página de login após o logout. Você pode fazer isso com um redirecionamento pelo cabeçalho.
Passo 6: Adicionar links para a interface do usuário
Não se esqueça de criar links para login e logout na sua interface do usuário. Quando o usuário clicar em logout, ele deve acionar o processo de logout, e isso deve ser configurado para que o usuário seja redirecionado para a página de login em seguida.

Neste contexto, um link para registro também pode ser útil, que você deve inserir no local apropriado em seu template.
Resumo
Você aprendeu como configurar Sessions em PHP para verificar a autenticação do usuário e implementar uma função de logout. Esses passos básicos são centrais para tornar a autenticação segura em suas aplicações web.
Perguntas Frequentes
Como inicio uma Session em PHP?Use session_start() no início de seus scripts PHP para inicializar uma Session.
Como verifico se um usuário está logado?Crie uma função que acesse as Sessions e verifique se um determinado valor (por exemplo, userID) está definido.
Como posso desconectar um usuário?Chame a função session_destroy() para encerrar a Session e desconectar o usuário.
Como redireciono um usuário após o logout?Use a função Header com header("Location: url") para redirecionar o usuário para a página desejada.