Programação Web Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 11 – Controle de sessão de usuário     Dalton Ma...
Importância do controle de sessãoO protocolo HTTP, utilizado para trocar dados com um servidor web, não faz controle de es...
Gerenciamento de sessõesÉ um dispositivo utilizado por alguns servidores e linguagens  de programação Web que:  → cada vis...
2 modos de atribuir SID1. Cookies:  Ao invés de guardar as preferências do usuário num   cookie em sua máquina, o novo mec...
Trabalhando com gerenciamento de             sessãoAlguns recursos fundamentais:  → session_start() : inicializa uma sessã...
Exemplo – parte 1<?php    session_start();     if (! isset($_SESSION[usuario])) {            if (isset($_POST[usuario])) {...
Exemplo – parte 2<?php    session_start();     if (isset($_SESSION[usuario])) {            echo "Sessao previamente inicia...
Exemplo – parte 3<p>  <form method="post" action="<?php echo $_SERVER[PHP_SELF]; ?>">       Usuario:<br /><input type="tex...
Upcoming SlideShare
Loading in...5
×

Aula 11 - Controle de sessão em PHP - Programação Web

5,070

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,070
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
81
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aula 11 - Controle de sessão em PHP - Programação Web

  1. 1. Programação Web Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 11 – Controle de sessão de usuário Dalton Martins dmartins@gmail.comSão Paulo, Novembro, 2011
  2. 2. Importância do controle de sessãoO protocolo HTTP, utilizado para trocar dados com um servidor web, não faz controle de estado de conexão;Ou seja, a cada nova requisição para um servidor, o protocolo não considera o que ocorreu anteriormente;Isso traz um problema quando queremos customizar o comportamento de aplicações ao perfil de determinados usuários.Umas das primeiras soluções para esse problema foi a utilização de cookies → informações que são gravadas na máquina do usuário e podem ser recuperadas por uma aplicação posteriormente;No entanto, os cookies possuem limitações e fragilidades em termos de segurança, não sendo o modo mais adequado parSurge uma outra solução → gerenciamento de sessões!
  3. 3. Gerenciamento de sessõesÉ um dispositivo utilizado por alguns servidores e linguagens de programação Web que: → cada visitante de um site recebe um identificador único, chamado de SID (session ID); → o SID pode ser correlacionado com qualquer outro conjunto de informações, como por exemplo, a cor de fundo do site, níveis de permissão de acesso, módulos disponíveis, etc... → em termos de um banco de dados relacional, o SID pode ser uma chave primária que correlaciona os dados de um usuário. No entanto, como o SID é mantido fixo relacionado a um usuário se o protocolo HTTP não guarda estado de conexão?
  4. 4. 2 modos de atribuir SID1. Cookies: Ao invés de guardar as preferências do usuário num cookie em sua máquina, o novo mecanismo de gerenciamento de sessão armazena apenas o SID do usuário em um cookie local, ficando todo o resto da informação a critério de controle da aplicação;2. Reescrita da URL: É um mecanismo que incorpora na URL o código SID de um usuário. É um modo mais frágil.
  5. 5. Trabalhando com gerenciamento de sessãoAlguns recursos fundamentais: → session_start() : inicializa uma sessão e, se já inicializada, recupera as variáveis de sessão atuais numa página; → session_destroy() : finaliza a sessão, destruindo todas as variáveis em utilização; → variáveis estilo $_SESSION[nome] : é o mecanismo que permite criarmos variáveis de sessão. Podemos utilizar quantas acharmos necessário; → session_encode() : codifica as variáveis de sessão é uma única linha string. Facilita gravar logs em banco de dados; → session_decode() : decodifica as variáveis, permitindo separá-las novamente;
  6. 6. Exemplo – parte 1<?php session_start(); if (! isset($_SESSION[usuario])) { if (isset($_POST[usuario])) { $_SESSION[usuario]=$_POST[usuario]; echo "Usuario registrado! Recarregue a página para ver o que ocorre!"; } else { require_once(login.html); } } else { echo "O seu identificador de sessão é ".session_id()."<br>"; $_SESSION[usuario]="pedro"; $_SESSION[datalogin]= date("M d Y H:i:s"); echo "<br>"; echo "Nome de usuario..: ".$_SESSION[usuario]."<br>"; echo "Data de login....: ".$_SESSION[datalogin]."<br><br>"; $codificasessao = session_encode(); echo $codificasessao."<br><br>"; echo "<a href="outroarquivo.php">Acessar outro arquivo para testar variaveis de sessao</a>"; }?>
  7. 7. Exemplo – parte 2<?php session_start(); if (isset($_SESSION[usuario])) { echo "Sessao previamente iniciada <br>"; echo "Usuario logado...: ".$_SESSION[usuario]."<br>"; echo "Finalizando a sessao...<br>"; session_destroy(); echo "<a href="controleteste.php">Acessar arquivo inicial para testar variaveis de sessao</a>"; } else { echo "A sessao nao foi previamente iniciada!"; }?>
  8. 8. Exemplo – parte 3<p> <form method="post" action="<?php echo $_SERVER[PHP_SELF]; ?>"> Usuario:<br /><input type="text" name="usuario" size="10" /><br /> Senha:<br /><input type="password" name="senha" SIZE="10" /><br /> <input type="submit" value="Login" /> </form></p>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×