SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
Programação Web
 Fatec Ipiranga
 Análise e Desenvolvimento de Sistemas


 Aula 11 – Controle de sessão de usuário




     Dalton Martins
   dmartins@gmail.com

São Paulo, Novembro, 2011
Importância do controle de sessão
O 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 par
Surge uma outra solução → gerenciamento de sessões!
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?
2 modos de atribuir SID
1. 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.
Trabalhando com gerenciamento de
             sessão
Alguns 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;
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>";
     }
?>
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!";
     }
?>
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>

Weitere ähnliche Inhalte

Was ist angesagt?

Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
Pacc UAB
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Adriano Teixeira de Souza
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
Christian Perone
 

Was ist angesagt? (20)

Formulário HTML
Formulário HTMLFormulário HTML
Formulário HTML
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos11 Java Script - Exemplos com eventos
11 Java Script - Exemplos com eventos
 
ScreenPlay Design Patterns for QA Automation
ScreenPlay Design Patterns for QA AutomationScreenPlay Design Patterns for QA Automation
ScreenPlay Design Patterns for QA Automation
 
Guia Referência Rápida HTML 5
Guia Referência Rápida HTML 5Guia Referência Rápida HTML 5
Guia Referência Rápida HTML 5
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
SOLID PRINCIPLES
SOLID PRINCIPLESSOLID PRINCIPLES
SOLID PRINCIPLES
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Clean Code Principles
Clean Code PrinciplesClean Code Principles
Clean Code Principles
 
07 html formulários
07 html   formulários07 html   formulários
07 html formulários
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e Ajax
 
HTML5 Básico: Formulários (aula 2)
HTML5 Básico: Formulários (aula 2)HTML5 Básico: Formulários (aula 2)
HTML5 Básico: Formulários (aula 2)
 
O que é design centrado no usuário
O que é design centrado no usuárioO que é design centrado no usuário
O que é design centrado no usuário
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Introdução ao design de teste de software
Introdução ao design de teste de softwareIntrodução ao design de teste de software
Introdução ao design de teste de software
 
Funções Grupo Oracle
Funções Grupo OracleFunções Grupo Oracle
Funções Grupo Oracle
 

Andere mochten auch (9)

Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
Manipulação de formulários com PHP. Uso de Cookies e Session com PHP.
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies Cabecalhos
 
Sessions in php
Sessions in php Sessions in php
Sessions in php
 
Php
PhpPhp
Php
 
Cookies e Sessões e PHP
Cookies e Sessões e PHPCookies e Sessões e PHP
Cookies e Sessões e PHP
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
Cookie and session
Cookie and sessionCookie and session
Cookie and session
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 

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

Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
Regis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
Regis Magalhães
 
Progweb Aula8
Progweb Aula8Progweb Aula8
Progweb Aula8
softeam
 
Autenticação e Controle de Acesso
Autenticação e Controle de AcessoAutenticação e Controle de Acesso
Autenticação e Controle de Acesso
Denis L Presciliano
 
Framework Codeigniter - Sessão
Framework Codeigniter - SessãoFramework Codeigniter - Sessão
Framework Codeigniter - Sessão
Multside Digital
 

Ähnlich wie Aula 11 - Controle de sessão em PHP - Programação Web (20)

Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Sistema php
Sistema phpSistema php
Sistema php
 
Sessao
SessaoSessao
Sessao
 
Sessões
SessõesSessões
Sessões
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
PHP MySQL Aula 08
PHP MySQL Aula 08PHP MySQL Aula 08
PHP MySQL Aula 08
 
Progweb Aula8
Progweb Aula8Progweb Aula8
Progweb Aula8
 
Aula 5 - Cookies e sessões em PHP
Aula 5 - Cookies e sessões em PHPAula 5 - Cookies e sessões em PHP
Aula 5 - Cookies e sessões em PHP
 
Programação Server Side I - Aula 2
Programação Server Side I - Aula 2Programação Server Side I - Aula 2
Programação Server Side I - Aula 2
 
Aula 5
Aula 5Aula 5
Aula 5
 
Php12
Php12Php12
Php12
 
Aula 5 - Cookies e Sessões em PHP
Aula 5 - Cookies e Sessões em PHPAula 5 - Cookies e Sessões em PHP
Aula 5 - Cookies e Sessões em PHP
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Autenticação e Controle de Acesso
Autenticação e Controle de AcessoAutenticação e Controle de Acesso
Autenticação e Controle de Acesso
 
Segurança e Controle de errros
Segurança e Controle de errrosSegurança e Controle de errros
Segurança e Controle de errros
 
ASP.NET - Segurança
ASP.NET - SegurançaASP.NET - Segurança
ASP.NET - Segurança
 
Framework Codeigniter - Sessão
Framework Codeigniter - SessãoFramework Codeigniter - Sessão
Framework Codeigniter - Sessão
 
Bloco 5.4
Bloco 5.4Bloco 5.4
Bloco 5.4
 
HTML5 - Web storage
HTML5 - Web storageHTML5 - Web storage
HTML5 - Web storage
 

Mehr von Dalton Martins

Mehr von Dalton Martins (20)

Computação cognitiva e políticas culturais
Computação cognitiva e políticas culturaisComputação cognitiva e políticas culturais
Computação cognitiva e políticas culturais
 
Humanidades digitais e ciência de dados: novos métodos, perspectivas e desaf...
Humanidades digitais e ciência de dados: novos métodos, perspectivas e desaf...Humanidades digitais e ciência de dados: novos métodos, perspectivas e desaf...
Humanidades digitais e ciência de dados: novos métodos, perspectivas e desaf...
 
Cultura digital, museus e acervos em rede
Cultura digital, museus e acervos em redeCultura digital, museus e acervos em rede
Cultura digital, museus e acervos em rede
 
Digitalização da cultura brasileira - as motivações do projeto Tainacan
Digitalização da cultura brasileira - as motivações do projeto TainacanDigitalização da cultura brasileira - as motivações do projeto Tainacan
Digitalização da cultura brasileira - as motivações do projeto Tainacan
 
Processos colaborativos de produção de ontologias - I Fórum Nacional de Sist...
Processos colaborativos de produção de ontologias  - I Fórum Nacional de Sist...Processos colaborativos de produção de ontologias  - I Fórum Nacional de Sist...
Processos colaborativos de produção de ontologias - I Fórum Nacional de Sist...
 
Do documento às ontologias: uma visão sobre sistemas de organização do conhec...
Do documento às ontologias: uma visão sobre sistemas de organização do conhec...Do documento às ontologias: uma visão sobre sistemas de organização do conhec...
Do documento às ontologias: uma visão sobre sistemas de organização do conhec...
 
Análise de Redes Sociais para educação à distância na plataforma ELGG para o ...
Análise de Redes Sociais para educação à distância na plataforma ELGG para o ...Análise de Redes Sociais para educação à distância na plataforma ELGG para o ...
Análise de Redes Sociais para educação à distância na plataforma ELGG para o ...
 
Criança, mídia e consumo na formação de professores
Criança, mídia e consumo na formação de professoresCriança, mídia e consumo na formação de professores
Criança, mídia e consumo na formação de professores
 
Jornalismo de Dados - Fontes de Informação para produção de Mapas Informacion...
Jornalismo de Dados - Fontes de Informação para produção de Mapas Informacion...Jornalismo de Dados - Fontes de Informação para produção de Mapas Informacion...
Jornalismo de Dados - Fontes de Informação para produção de Mapas Informacion...
 
In search of a model of human dynamics analysis applied to social sciences
In search of a model of human dynamics analysis applied to social sciencesIn search of a model of human dynamics analysis applied to social sciences
In search of a model of human dynamics analysis applied to social sciences
 
Novos caminhos da inclusão digital: experiências do projeto +Telecentros
Novos caminhos da inclusão digital: experiências do projeto +TelecentrosNovos caminhos da inclusão digital: experiências do projeto +Telecentros
Novos caminhos da inclusão digital: experiências do projeto +Telecentros
 
Aula 01 introdução e conceitos básicos sobre gestão
Aula 01   introdução e conceitos básicos sobre gestãoAula 01   introdução e conceitos básicos sobre gestão
Aula 01 introdução e conceitos básicos sobre gestão
 
Apresentação Semana de Humanização da Saúde: uma visão quantitativa
Apresentação Semana de Humanização da Saúde: uma visão quantitativaApresentação Semana de Humanização da Saúde: uma visão quantitativa
Apresentação Semana de Humanização da Saúde: uma visão quantitativa
 
Design da Informação - Aula 04 - Imagens que informam - design, legendas e di...
Design da Informação - Aula 04 - Imagens que informam - design, legendas e di...Design da Informação - Aula 04 - Imagens que informam - design, legendas e di...
Design da Informação - Aula 04 - Imagens que informam - design, legendas e di...
 
Design da Informação - Aula 03 - Princípios do design de informação
Design da Informação - Aula 03 - Princípios do design de informaçãoDesign da Informação - Aula 03 - Princípios do design de informação
Design da Informação - Aula 03 - Princípios do design de informação
 
Aula 04 - Tópicos em Gestão da Informação Medidas de posição relativa
Aula 04 - Tópicos em Gestão da Informação Medidas de posição relativaAula 04 - Tópicos em Gestão da Informação Medidas de posição relativa
Aula 04 - Tópicos em Gestão da Informação Medidas de posição relativa
 
Aula 02 - Design da Informação - História e princípios do design de informação
Aula 02 - Design da Informação - História e princípios do design de informaçãoAula 02 - Design da Informação - História e princípios do design de informação
Aula 02 - Design da Informação - História e princípios do design de informação
 
Aula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrõesAula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrões
 
Aula 02 - Estatística da vida cotidiana
Aula 02 - Estatística da vida cotidianaAula 02 - Estatística da vida cotidiana
Aula 02 - Estatística da vida cotidiana
 
Tópicos em Gestão da Informação II - Aula 01 - Desafios atuais da Gestão da I...
Tópicos em Gestão da Informação II - Aula 01 - Desafios atuais da Gestão da I...Tópicos em Gestão da Informação II - Aula 01 - Desafios atuais da Gestão da I...
Tópicos em Gestão da Informação II - Aula 01 - Desafios atuais da Gestão da I...
 

Kürzlich hochgeladen

ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 

Kürzlich hochgeladen (20)

ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 

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

  • 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.com São Paulo, Novembro, 2011
  • 2. Importância do controle de sessão O 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 par Surge uma outra solução → gerenciamento de sessões!
  • 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. 2 modos de atribuir SID 1. 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. Trabalhando com gerenciamento de sessão Alguns 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. 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. 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. 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>