Aprendendo a usar sessões no PHP

Sessão é um recurso do PHP que permite que você salve valores (variáveis) para serem usados ao longo da visita do usuário. Valores salvos na sessão podem ser usados em qualquer parte do script, mesmo em outras páginas do site. São variáveis que permanecem setadas até o visitante fechar o browser ou a sessão ser destruída.

Você precisa iniciar a sessão antes de poder setar ou pegar valores dela. Não há limite de valores salvos na sessão. A sessão é pessoal de cada visitante. Quando um visitante acessa o site, é gerado um cookie no computador dele informando um id único de sessão e o PHP usa esse identificador pra ‘organizar’ as sessões entre os visitantes do seu site. Mas esse cookie tem validade apenas enquanto o browser estiver aberto.

Você precisa iniciar a sessão antes de iniciar o output, ou seja, antes de retornar QUALQUER coisa pro HTML. Antes de dar qualquer echo ou antes de inserir qualquer HTML fora de blocos php. Geralmente o início da sessão é uma das primeiras coisas no começo de todo site.

A sessão precisa ser iniciada em cada página que você for usar ou definir um valor dela, salvo arquivos que vieram por include, mas é preciso ter iniciado a sessão uma vez antes do include.

Para abrir a sessão é só usar esse comando no PHP:

session_start(); // Inicia a sessão

Depois de iniciada a sessão você pode definir valores dentro dela dessa forma:

$_SESSION['usuario'] = 'Thiago';

E quando você precisar exibir o valor salvo na sessão (provavelmente em outras páginas), é só fazer assim:

echo $_SESSION['usuario']; // Resultado: Thiago

Você pode salvar quantos valores quiser, pode re-definir os valores e usa-los em echos, argumentos de funções e da forma que preferir.

Para deletar uma variável específica da sessão você usa o unset():

unset($_SESSION['usuario']); // Deleta uma variável da sessão

Você também pode destruir toda a sessão de uma só vez, eliminando todas as variáveis salvas nela:

session_destroy(); // Destrói toda sessão

Com isso você tem total controle das sessões no seu site e pode salvar, por exemplo, o nome de usuário depois que ele fez o login e salvar outra variável informando que o usuário está logado. Esta é uma prática muito comum em sistemas de autenticação de usuário.

Espero que tenham gostado e adoraria que usassem o que aprenderam aqui.

Documentação Oficial:

9 thoughts on “Aprendendo a usar sessões no PHP

  1. Lucas

    Thiago, é possivel que variaveis SESSAO sejam setadas por um script que não esta no seu servidor? isso é possivel? Digo na questao de segurança.

    Obrigado.

  2. jhienmerson

    mano é o seguinte estou aprendendo sessão agora, vou te mostrar o que não entendi..
    exemplo:

    $nome=$_post['nome']; ——isso rece os dados vindos de um form certo??

    e como eu seto ($_SESSION['usuario'] = ‘Thiago’; ) ae criando a sessão? se eu estiver equivocado em algo me fala…

    valew mano!!!

  3. myst1010

    Parabéns pela matéria Tiago.

    Um exemplo simples e diferente do já mencionado seria uma listview que defini se os posts de uma galeria serão completos ou simplificados.

    Exemplo: vc cria uma galeria e existe a opção do usuário ver a lista com imagens em miniaturas ou completas, dai ele escolhe e começa a ver a galeria da forma que ele escolheu.

    Na verdade pensei em montar uma galeria desta forma a um tempo atrás no WordPress, mas me deparei com um problema.

    Não consegui fazer com que a sessão seja gravada no cookie do usuário para uma próxima visita, dai desisti já que o usuário teria que sempre escolher a forma que deseja ver.

    Tiago, você saberia me orientar sobre esta questão?

    Outra dúvida minha é sobre a segurança, seria possível passar dados entre um formulário que esteja usando uma sessão?

    Se existe, tem como nos proteger dessas inserções de dados?

  4. Fernando

    Muito bom cara, parabéns pelo artigo.

    Deixou o assunto mais claro pra mim, que apesar de já ter usado sessões há um tempo atrás, estava meio confuso quanto ao uso.

    Parabéns. Abraços.

  5. Thiago Belem

    @Rodrigo
    Geralmente sistemas de login salvam informações sobre o usuário logado na sessão, aí fica mais fácil saber se ele fez o login, qual o nome, qual o nível de acesso e etc… ;)

  6. Rodrigo Berriel

    Interessante… acho que deve ser bastante funcional… mas não consegui enxergar sua funcionalidade mesmo…

    Teria como dar um exemplo que dê para perceber mais facilmente?

    Desde já meu muito obrigado…

    Abraços!

Comments are closed.