Vous êtes sur la page 1sur 5

Sesses com PHP

Sesso um recurso do PHP que permite que voc salve valores (variveis) para serem usados ao
longo da visita do usurio. Valores salvos na sesso podem ser usados em qualquer parte do
programa, mesmo em outras pginas do sistema. So variveis que permanecem salvas at o usurio
fechar o navegador ou a sesso ser encerrada. Uso de sesses traz a possibilidade de unicidade e
privacidade de usurios. Onde, por exemplo, cada usurio (com seu login e senha), s pode ter
acesso as suas informaes pessoais. Enquanto o usurio no encerrar sua sesso, suas informaes
pessoais continuam disponveis.
Vamos entender com um exemplo simples: imagine que eu tenha uma pgina de informaes
restritas, onde somente o usurio 'user' com senha '1234' possa acessar. Primeiramente precisamos
do formulrio para insero de Login/senha, outra parte com cdigo PHP para verificao do
usurio e encaminhamento para a pgina restrita. E, finalizando, a pgina com as informaes
confidenciais.

form.html

valida.php
Visualizem a novidade neste cdigo. Na linha 7, se
usurio e senha corretos, a instruo da linha 9
header(Location:restrito.php) carregada e o
usurio enviado para a pgina restrito.php. Esta
pgina contm informaes confidenciais, que
somente usurio logados podem ter acesso.
restrito.php

Criem esse cdigos e faam os testes. Se Login/Senha incorretos, o usurio no consegue visualizar
a rea restrita. Se tudo certo, o usurio enviado a pgina certa e visualiza as informaes.

Entretanto, tal codificao no funcional, tampouco segura. aqui que visualizamos a


necessidade de sesses.

Faamos um teste: experimente acessar http://localhost/progweb2/restrito.php. (No seu caso, troque


pelo caminho correto)
Caso faa isso, visualizar que a pgina restrita foi carregada, sem a necessidade de Login e senha.
Isso, porque no programa restrito.php no existe qualquer tipo de cdigo que se preocupe e no
autorizar o acesso. Ento qualquer pessoa que souber um endereo especfico, poder acess-lo.
Imagina se fosse assim com seu e-mail?

Isso no pode acontecer. Para solucionar, vamos utilizar Sesses.

Algumas questes que precisamos entender:

Voc precisa iniciar a sesso antes de poder setar ou pegar valores dela. No h limite de valores
salvos na sesso. A sesso pessoal de cada visitante.
Voc precisa iniciar a sesso antes de iniciar o output, ou seja, antes de retornar qualquer coisa para
o HTML. Antes de dar qualquer echo ou antes de inserir qualquer HTML fora de blocos php.
Geralmente o incio da sesso uma das primeiras coisas no comeo de todo cdigo.
A sesso precisa ser iniciada em cada pgina que voc for usar ou definir um valor dela, salvo
arquivos que vieram por include, mas preciso ter iniciado a sesso uma vez antes do include (que
ainda vamos aprender)

Para abrir a sesso s usar esse comando no PHP:


<?php
session_start(); // Inicia a sesso

Depois de iniciada a sesso voc pode definir valores dentro dela dessa forma:
<?php
$_SESSION['usuario'] = 'Thiago';

E quando voc precisar exibir o valor salvo na sesso (provavelmente em outras pginas), s fazer
assim:
<?php
echo $_SESSION['usuario']; // Resultado: Thiago

Voc pode salvar quantos valores quiser, pode re-definir os valores e usa-los em echos, argumentos
de funes e da forma que preferir.

Para deletar uma varivel especfica da sesso voc usa o unset():


<?php
unset($_SESSION['usuario']); // Deleta uma varivel da sesso

Voc tambm pode destruir toda a sesso de uma s vez, eliminando todas as variveis salvas nela:
<?php
session_destroy(); // Destri toda sesso

Com isso voc tem total controle das sesses no seu site e pode salvar, por exemplo, o nome de
usurio depois que ele fez o login e salvar outra varivel informando que o usurio est logado. Esta
uma prtica muito comum em sistemas de autenticao de usurio.

Ento, vamos aperfeioar nosso cdigo, inserindo Sesses.


O cdigo form.html continua igual

No cdigo valida.php vamos iniciar as alteraes


Visualizem as mudanas:

linha 2: Se preciso utilizar sesso, sempre ao incio do cdigo insiro session_start()


linhas 9 e 10: Vejam que salvo dentro do vetor $_SESSION login e senha do usurio. Isto para que
depois eu possa testar, na outra pgina, se existe o usurio logado.
Nas linhas 15 e 16, por motivos de segurana eu deleto as informaes que poderiam estar
armazenadas no vetor $_SESSION.

No cdigo restrito.php tambm vamos fazer modificaes

Visualizem as mudanas:

linha 4: aqui eu utilizo as informaes salvas no vetor $_SESSION para verificar se o usurio
entrou com login e senha. Caso no, o usurio no poder visualizar as informaes desta pgina.
Com o comando isset($_SESSION) eu verifico se a varivel est definida.

At aqui j est completamente funcional o sistema de login e senha e pgina restrita. Mas existe
um probleminha... Depois que usurio entrou com login e senha corretos, ele ficar logado no
sistema. Visualize aqui a necessidade de criamos um cdigo para 'deslogar', para zerar as
informaes existentes no vetor $_SESSION. Assim, outros usurios tambm podem fazer acesso a
sistema.
Algumas mudanas ento:

restrito.php

Adicionei a linha 7, com a possibilidade de acessar o cdigo para 'deslogar'. Vejam que encaminho
para a pgina deslogar.php. Por isso preciso cri-la.

deslogar.php

No cdigo 'deslogar.php' apenas, por segurana, deleto as informaes do vetor $_SESSION com
unset e destruo a sesso existente com session_destroy(). Feito isso, encaminho o usurio para a
pgina do formulrio.

Vous aimerez peut-être aussi