Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

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

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

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>

Views

Total views

6,889

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

104

Shares

0

Comments

0

Likes

0

×