SlideShare uma empresa Scribd logo
Programação para WEB Regis Pires Magalhães [email_address] PHP: Sessões, Cookies e Cabeçalhos HTTP
Sessões Permitem armazenar informações importantes do usuário do site e acessá-las em qualquer página por determinado período de tempo. Servem para armazenamento de dados no servidor. Pode ser importante armazenar as informações do usuário, como sua identificação de login, seu carrinho de compras, produtos visitados, etc. Um arquivo no servidor é criado por padrão no diretório temporário, com o nome do arquivo iniciando por “sess_” e seguido do ID da sessão: Arquivo: sess_4e2eca1a2b20237ce861d690c68294cf Caminho: C:amppmp
ID de Sessão Há 2 formas de passar o ID de sessão para o servidor: Via Cookie (Recomendada) Via parâmetro de URL (só em último caso – cookies desabilitados no navegador) O ID de sessão é inserido diretamente na URL.
ID de Sessão via Cookie Ao fazer uso de sessão em PHP, um cookie chamado PHPSESSID (identificador de sessão do PHP) é automaticamente criado no navegador para identificar que sessão está sendo usada no servidor. Este cookie é automaticamente excluído quando o navegador for fechado.
Iniciando uma Sessão Para iniciar uma nova sessão ou para abrir uma sessão já iniciada, deve-se usar a função  session_start() . session_start()  OBRIGATORIAMENTE deve vir antes de qualquer saída HTML.
Armazenando algo na Sessão Opções: Via variável  $_SESSION Via função  session_register()
Armazenando algo na Sessão <?php   session_start(); $variavel_01   =   &quot;Programação&quot; ; $variavel_02   =   &quot;para WEB&quot; ; session_register( 'variavel_01' ); $_SESSION [ 'variavel_02' ]   =   $variavel_02 ; ?> < html > < head > < title > CEFET-PI PHB </ title > </ head > < body > < p > Informações sobre a sessão: </ p > <?php   echo   '<p>Session ID: ' .session_id(). '</p>' ; print_r( $_SESSION );   ?> </ p > </ body > </ html >
Eliminando algo da Sessão session_unregister() Elimina uma determinada variável da sessão. session_unset() Elimina todas as variáveis da sessão.
Tempo de vida da Sessão session_cache_expire() Retorna o tempo de expiração das sessões ou define novo tempo de expiração em minutos. Para redefinir o tempo de expiração, deve ser executada antes de  session_start() . Tempo padrão de duração da sessão: 180 minutos Para alterar o tempo padrão, deve-se chamar  session_cache_expire()  a cada página que faça uso da sessão.
Destruindo uma Sessão A destruição da sessão é feita através da função  session_destroy() . Antes de chamar a função session_destroy(), deve-se primeiro abrir a sessão com  session_start() . Essa função é normalmente utilizada quando um usuário requisita sua saída da aplicação (logout).
Cookie É uma pequena quantidade de informação armazenada na máquina cliente que possibilita a identificação de informações dos usuários que acessam o servidor. Pode estar na memória do navegador ou armazenada no disco. Contém um par: chave, valor. Usar com moderação. O uso de cookies pode permitir que o usuário após ter se autenticado, desligue o computador, acesse o site um tempo depois e não precise se autenticar novamente. Ex: GMail, Hotmail, Yahoo, etc. Para utilizar esse recurso, o usuário aceita a opção “salvar as minhas informações neste computador”.
Informações contidas em um Cookie Nome:   PHPSESSID Valor:   4e2eca1a2b20237ce861d690c68294cf Servidor:   localhost Caminho:   / Enviar:   em todos os tipos  de conexão Validade:  até sair do Firefox
Cookie Os cookies são uma parte do cabeçalho HTTP, logo a função  setcookie()  precisa ser chamada antes que qualquer outro dado seja enviado ao navegador. Qualquer cookie enviado para o cliente automaticamente será incluido no array $_COOKIE. Para armazenar um array em cookies, acrescente [] ao nome do cookie.
Adicionando Cookies <?php   /* dura até o fechamento do browser */ setcookie( 'meu_cookie1' ,   'PHP' ); /* dura 1 hora */ setcookie( 'meu_cookie2' ,   'WEB' ,   time()+ 3600 );   /* dura 1 hora */ setcookie( 'meu_cookie3' ,   'NOW' ,   time()+ 3600 ,   '/regis/' ,   '' ); ?>
Usando Cookies <?php echo   'meu_cookie1: ' ; echo  $_COOKIE [ 'meu_cookie1' ]. '<br/>' ; echo   'meu_cookie2: ' ; echo   $_COOKIE [ 'meu_cookie2' ]. '<br/>' ; echo   'meu_cookie3: ' ; echo   $_COOKIE [ 'meu_cookie3' ]. '<br/>' ; print_r( $_COOKIE ); ?>
Removendo Cookies <?php // configurar valor com string vazia setcookie   ( 'meu_cookie1' ,   '' ); setcookie   ( 'meu_cookie2' ,   '' ); // configurar a data de expiração para o passado setcookie   ( 'meu_cookie3' ,   '' ,   time()   -   3600 ); ?>
Adicionando Array em Cookies <?php setcookie( 'pessoa[0]' ,   'Maria' ); setcookie( 'pessoa[1]' ,   'João' ); setcookie( 'pessoa[2]' ,   'José' ); ?>
Contadores (session e cookie) <?php session_start(); $_SESSION [ 'contador_session' ]++; setcookie( 'contador_cookie' , $_COOKIE [ 'contador_cookie' ]   +   1 ); ?> < html > < head > < title > CEFET-PI PHB </ title > </ head > < body > < p > Contador Session:  <?php   echo   $_SESSION [ 'contador_session' ]   ?> < p /> < p > Contador Cookie:  <?php   echo   $_COOKIE [ 'contador_cookie' ]   +   1   ?> < p /> <?php   print_r( $_COOKIE );   ?> </ body > </ html >
Inserindo itens em um array <?php session_start(); if   (strlen(trim( $_POST [ 'nome' ]))   >   0 )   { if   (gettype( $_SESSION [ 'nomes' ])   ==   'array' )   { array_push( $_SESSION [ 'nomes' ],   $_POST [ 'nome' ]); }   else   { $_SESSION [ 'nomes' ]   =   array ( $_POST [ 'nome' ]); } } ?> < html > < head >< title > CEFET-PHB </ title ></ head > < body > < form  action = &quot;exemplo_session3.php&quot;  method = &quot;post&quot; > < p > Nome:  < input  name = &quot;nome&quot;  type = &quot;text&quot; /></ p > < input  type = &quot;submit&quot;  value = &quot;Inserir Nome&quot; /> </ form > <?php   if   (gettype( $_SESSION [ 'nomes' ])   ==   'array' )   { echo   '<p>Nomes inseridos na sessão:</p>' ; foreach   ( $_SESSION [ 'nomes' ]   as   $item )   { echo   $item . '<br/>' ; } } ?> </ body > </ html >
Inserindo itens em um array <?php session_start(); if   (strlen(trim( $_POST [ 'nome' ]))   >   0 )   { $tamanho   =   count( $_COOKIE [ 'nomes' ]); setcookie( &quot;nomes[ $tamanho ]&quot; ,   $_POST [ 'nome' ]); } ?> < html > < head >< title > CEFET-PHB </ title ></ head > < body > < form  action = &quot;exemplo_session3.php&quot;  method = &quot;post&quot; > < p > Nome:  < input  name = &quot;nome&quot;  type = &quot;text&quot; /></ p > < input  type = &quot;submit&quot;  value = &quot;Inserir Nome&quot; /> </ form > <?php   if   (gettype( $_COOKIE [ 'nomes' ])   ==   'array' )   { echo   '<p>Nomes inseridos na sessão:</p>' ; foreach   ( $_COOKIE [ 'nomes' ]   as   $item )   { echo   $item . '<br/>' ; } echo   $_POST [ 'nome' ]. '<br/>' ; } ?> </ body > </ html >
Cabeçalhos HTTP Redirecionamento de página A função exit interrompe a execução do script e pode mostrar uma mensagem. <?php header( 'Location: http://localhost/xampp' ); exit ; ?> <?php $servidor   =   'http://'   .   $_SERVER [ 'HTTP_HOST' ]; header( 'Location: '   .   $servidor   .   '/xampp/' ); exit ; ?>
Redirecionamento via HTML < html > < head > < meta  http-equiv = &quot;refresh&quot;   content = &quot;0;url=http://localhost/xampp/&quot;  /> </ head > < body > < p > Redirecionando... </ p > </ body > </ html >
Autenticação HTTP O protocolo HTTP permite o pedido de usuário e senha via janela pop-up. Isso é feito através do cabeçalho WWW-Authenticate. Após a autenticação, as seguintes variáveis são criadas: $_SERVER['PHP_AUTH_USER']  – Usuário  $_SERVER['PHP_AUTH_PW']  – Senha  $_SERVER['PHP_AUTH_TYPE']  – Basic
Autenticação HTTP <?php function   authenticate()   { header( 'WWW-Authenticate: Basic realm=&quot;CEFET-PHB&quot;' ); header( 'HTTP/1.0 401 Unauthorized' ); echo   'Usuário ou senha invalido(s).' ; exit ; } if   (! isset ( $_SERVER [ 'PHP_AUTH_USER' ]))   { authenticate(); } if   ( $_SERVER [ 'PHP_AUTH_USER' ]   !=   'regis'   ||   $_SERVER [ 'PHP_AUTH_PW' ]   !=   '1234' )   { authenticate(); } ?> < html > < head >< title > CEFET-PHB </ title ></ head > < body > < p > Bem-vindo ao nosso site!!! </ p > </ body > </ html >
CAPTCHA <!-- exemplo_captcha.php --> < html > < head > < title > CEFET-PHB </ title > </ head > < body > < h1 > CAPTCHA </ h1 > < p > Completely Automated Public Turing test to tell Computers and Humans Apart </ p > < p > teste de Turing público completamente automatizado para diferenciar entre computadores e humanos </ p > < img  src = &quot;exemplo_captcha2.php&quot;  /> </ body > </ html >
CAPTCHA <?php // exemplo_captcha2.php header( 'Content-type: image/png' ); // Requisitos mínimos if (!function_exists( &quot;gd_info&quot; ))   { echo   &quot;Biblioteca GD não instalada.&quot; ; exit (); } // Criar a imagem $imagem   =   @imagecreate( 100 , 100 ); // Criar a paleta de cores $branco   =   @imagecolorallocate( $imagem , 0xFF , 0xFF , 0xFF ); $azulescuro   =   @imagecolorallocate( $imagem , 0x00 , 0x00 , 0x80 ); $verde   =   @imagecolorallocate( $imagem , 0x00 , 0xFF , 0x00 ); $verdeescuro   =   @imagecolorallocate( $imagem , 0x00 , 0x80 , 0x00 ); $vermelhoescuro   =   @imagecolorallocate( $imagem , 0x80 , 0x00 , 0x00 ); // Desenhar linhas aleatórias for ( $i   =   0 ; $i   <   3 ; $i ++) @imageline( $imagem ,rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ), $vermelhoescuro ); for ( $i   =   0 ; $i   <   3 ; $i ++) @imageline( $imagem ,rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ), $verdeescuro ); for ( $i   =   0 ; $i   <   3 ; $i ++) @imageline( $imagem ,rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ), $verde ); // Escrever palavra-passe aleatória for ( $i   =   0 ; $i   <   4 ; $i ++) @imagestring( $imagem , 6 , 32   +   10   *   $i , 32 +rand(- 5 , 5 ),rand( 1 , 9 ), $azulescuro ); // Rotacionar a imagem $imagem   =   @imagerotate( $imagem , 10 , $branco ); // Finalização da imagem @imagepng( $imagem ); ?>

Mais conteúdo relacionado

Mais procurados

Introduction to php web programming - sessions and cookies
Introduction to php   web programming - sessions and cookiesIntroduction to php   web programming - sessions and cookies
Introduction to php web programming - sessions and cookies
baabtra.com - No. 1 supplier of quality freshers
 
Introduction to PHP
Introduction to PHPIntroduction to PHP
Introduction to PHP
Jussi Pohjolainen
 
Bootstrap.pptx
Bootstrap.pptxBootstrap.pptx
Bootstrap.pptx
vishal choudhary
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
Eyal Vardi
 
스프링처럼 JDBC 리팩터링하기
스프링처럼 JDBC 리팩터링하기 스프링처럼 JDBC 리팩터링하기
스프링처럼 JDBC 리팩터링하기
Chanwook Park
 
HTML 5 Canvas & SVG
HTML 5 Canvas & SVGHTML 5 Canvas & SVG
HTML 5 Canvas & SVG
Ofir's Fridman
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
Jukka Zitting
 
SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6
Tung Nguyen Thanh
 
Web front end development introduction to html css and javascript
Web front end development introduction to html css and javascriptWeb front end development introduction to html css and javascript
Web front end development introduction to html css and javascript
Marc Huang
 
ASP.NET-Web Programming - Sessions and Cookies
ASP.NET-Web Programming - Sessions and CookiesASP.NET-Web Programming - Sessions and Cookies
ASP.NET-Web Programming - Sessions and Cookies
baabtra.com - No. 1 supplier of quality freshers
 
Php Tutorials for Beginners
Php Tutorials for BeginnersPhp Tutorials for Beginners
Php Tutorials for Beginners
Vineet Kumar Saini
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
Mario Jorge Pereira
 
Cookie
CookieCookie
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Justin Lin
 
Sessions and cookies
Sessions and cookiesSessions and cookies
Sessions and cookies
www.netgains.org
 
Beginners PHP Tutorial
Beginners PHP TutorialBeginners PHP Tutorial
Beginners PHP Tutorial
alexjones89
 
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
オラクルエンジニア通信
 
HTML and CSS crash course!
HTML and CSS crash course!HTML and CSS crash course!
HTML and CSS crash course!
Ana Cidre
 
Shell Script Disk Usage Report and E-Mail Current Threshold Status
Shell Script  Disk Usage Report and E-Mail Current Threshold StatusShell Script  Disk Usage Report and E-Mail Current Threshold Status
Shell Script Disk Usage Report and E-Mail Current Threshold Status
VCP Muthukrishna
 
Introducing Modern Perl
Introducing Modern PerlIntroducing Modern Perl
Introducing Modern Perl
Dave Cross
 

Mais procurados (20)

Introduction to php web programming - sessions and cookies
Introduction to php   web programming - sessions and cookiesIntroduction to php   web programming - sessions and cookies
Introduction to php web programming - sessions and cookies
 
Introduction to PHP
Introduction to PHPIntroduction to PHP
Introduction to PHP
 
Bootstrap.pptx
Bootstrap.pptxBootstrap.pptx
Bootstrap.pptx
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
스프링처럼 JDBC 리팩터링하기
스프링처럼 JDBC 리팩터링하기 스프링처럼 JDBC 리팩터링하기
스프링처럼 JDBC 리팩터링하기
 
HTML 5 Canvas & SVG
HTML 5 Canvas & SVGHTML 5 Canvas & SVG
HTML 5 Canvas & SVG
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
 
SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6
 
Web front end development introduction to html css and javascript
Web front end development introduction to html css and javascriptWeb front end development introduction to html css and javascript
Web front end development introduction to html css and javascript
 
ASP.NET-Web Programming - Sessions and Cookies
ASP.NET-Web Programming - Sessions and CookiesASP.NET-Web Programming - Sessions and Cookies
ASP.NET-Web Programming - Sessions and Cookies
 
Php Tutorials for Beginners
Php Tutorials for BeginnersPhp Tutorials for Beginners
Php Tutorials for Beginners
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Cookie
CookieCookie
Cookie
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
 
Sessions and cookies
Sessions and cookiesSessions and cookies
Sessions and cookies
 
Beginners PHP Tutorial
Beginners PHP TutorialBeginners PHP Tutorial
Beginners PHP Tutorial
 
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
 
HTML and CSS crash course!
HTML and CSS crash course!HTML and CSS crash course!
HTML and CSS crash course!
 
Shell Script Disk Usage Report and E-Mail Current Threshold Status
Shell Script  Disk Usage Report and E-Mail Current Threshold StatusShell Script  Disk Usage Report and E-Mail Current Threshold Status
Shell Script Disk Usage Report and E-Mail Current Threshold Status
 
Introducing Modern Perl
Introducing Modern PerlIntroducing Modern Perl
Introducing Modern Perl
 

Destaque

Aula 11 - Controle de sessão em PHP - Programação Web
Aula 11  - Controle de sessão em PHP - Programação WebAula 11  - Controle de sessão em PHP - Programação Web
Aula 11 - Controle de sessão em PHP - Programação Web
Dalton Martins
 
Sessions in php
Sessions in php Sessions in php
Sessions in php
Mudasir Syed
 
A Ilustração na Comunicação Visual das Empresas
A Ilustração na Comunicação Visual das EmpresasA Ilustração na Comunicação Visual das Empresas
A Ilustração na Comunicação Visual das Empresas
RodTramonte
 
Entrevista MIE
Entrevista MIEEntrevista MIE
Entrevista MIE
Lurdes Cardoso
 
Projeto gráfico para impressos jornalísticos
Projeto gráfico para impressos jornalísticosProjeto gráfico para impressos jornalísticos
Projeto gráfico para impressos jornalísticos
Guilherme Carvalho
 
Projeto editorial e projeto gráfico
Projeto editorial e projeto gráficoProjeto editorial e projeto gráfico
Projeto editorial e projeto gráfico
aulasdejornalismo
 
Cookie and session
Cookie and sessionCookie and session
Cookie and session
Aashish Ghale
 

Destaque (7)

Aula 11 - Controle de sessão em PHP - Programação Web
Aula 11  - Controle de sessão em PHP - Programação WebAula 11  - Controle de sessão em PHP - Programação Web
Aula 11 - Controle de sessão em PHP - Programação Web
 
Sessions in php
Sessions in php Sessions in php
Sessions in php
 
A Ilustração na Comunicação Visual das Empresas
A Ilustração na Comunicação Visual das EmpresasA Ilustração na Comunicação Visual das Empresas
A Ilustração na Comunicação Visual das Empresas
 
Entrevista MIE
Entrevista MIEEntrevista MIE
Entrevista MIE
 
Projeto gráfico para impressos jornalísticos
Projeto gráfico para impressos jornalísticosProjeto gráfico para impressos jornalísticos
Projeto gráfico para impressos jornalísticos
 
Projeto editorial e projeto gráfico
Projeto editorial e projeto gráficoProjeto editorial e projeto gráfico
Projeto editorial e projeto gráfico
 
Cookie and session
Cookie and sessionCookie and session
Cookie and session
 

Semelhante a Php 03 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
Regis Magalhães
 
Php 04 Mysql
Php 04 MysqlPhp 04 Mysql
Php 04 Mysql
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
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
Regis Magalhães
 
Hello SAFE World!!!
Hello SAFE World!!!Hello SAFE World!!!
Hello SAFE World!!!
Everaldo Wanderlei Uavniczak
 
PHP FrameWARks - FISL
PHP FrameWARks - FISLPHP FrameWARks - FISL
PHP FrameWARks - FISL
Marcio Albuquerque
 
Puppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGilPuppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGil
jefesrodrigues
 
Apresentacao codeigniter
Apresentacao codeigniterApresentacao codeigniter
Apresentacao codeigniter
André Tagliati
 
Smarty Template Engine
Smarty Template EngineSmarty Template Engine
Smarty Template Engine
Diego Tremper
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
Douglas V. Pasqua
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
metzen
 
2009 05 20 Floripa Flex
2009 05 20 Floripa Flex2009 05 20 Floripa Flex
2009 05 20 Floripa Flex
Eduardo Kraus
 
Desenvolvimento de aplicativos para o Facebook
Desenvolvimento de aplicativos para o FacebookDesenvolvimento de aplicativos para o Facebook
Desenvolvimento de aplicativos para o Facebook
Ricardo Rodrigues Nunes
 
nDeveloper Framework
nDeveloper FrameworknDeveloper Framework
nDeveloper Framework
Pedro Alves Jr.
 
Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2
Thyago Maia
 
Desenvolvimento de web sites com php
Desenvolvimento de web sites com phpDesenvolvimento de web sites com php
Desenvolvimento de web sites com php
brenod123
 
NotORM
NotORMNotORM
NotORM
Tiago Davi
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
Rodrigo Aramburu
 
Sistema php
Sistema phpSistema php
Sistema php
Nuno Bastos
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
igorpimentel
 

Semelhante a Php 03 Sessoes Cookies Cabecalhos (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
 
Php 04 Mysql
Php 04 MysqlPhp 04 Mysql
Php 04 Mysql
 
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
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
Hello SAFE World!!!
Hello SAFE World!!!Hello SAFE World!!!
Hello SAFE World!!!
 
PHP FrameWARks - FISL
PHP FrameWARks - FISLPHP FrameWARks - FISL
PHP FrameWARks - FISL
 
Puppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGilPuppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGil
 
Apresentacao codeigniter
Apresentacao codeigniterApresentacao codeigniter
Apresentacao codeigniter
 
Smarty Template Engine
Smarty Template EngineSmarty Template Engine
Smarty Template Engine
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
 
2009 05 20 Floripa Flex
2009 05 20 Floripa Flex2009 05 20 Floripa Flex
2009 05 20 Floripa Flex
 
Desenvolvimento de aplicativos para o Facebook
Desenvolvimento de aplicativos para o FacebookDesenvolvimento de aplicativos para o Facebook
Desenvolvimento de aplicativos para o Facebook
 
nDeveloper Framework
nDeveloper FrameworknDeveloper Framework
nDeveloper Framework
 
Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2
 
Desenvolvimento de web sites com php
Desenvolvimento de web sites com phpDesenvolvimento de web sites com php
Desenvolvimento de web sites com php
 
NotORM
NotORMNotORM
NotORM
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
Sistema php
Sistema phpSistema php
Sistema php
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
 

Mais de Regis Magalhães

High Dimensional Data
High Dimensional DataHigh Dimensional Data
High Dimensional Data
Regis Magalhães
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
Regis Magalhães
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
Regis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
Regis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
Regis Magalhães
 
Prog web 09-php-crud-mvc
Prog web 09-php-crud-mvcProg web 09-php-crud-mvc
Prog web 09-php-crud-mvc
Regis Magalhães
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
Regis Magalhães
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
Regis Magalhães
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
Regis Magalhães
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
Regis Magalhães
 
Prog web 04-php-gd
Prog web 04-php-gdProg web 04-php-gd
Prog web 04-php-gd
Regis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
Regis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
Regis Magalhães
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011
Regis Magalhães
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
Regis Magalhães
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
Regis Magalhães
 
Easy Rails
Easy RailsEasy Rails
Easy Rails
Regis Magalhães
 

Mais de Regis Magalhães (20)

High Dimensional Data
High Dimensional DataHigh Dimensional Data
High Dimensional Data
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 09-php-crud-mvc
Prog web 09-php-crud-mvcProg web 09-php-crud-mvc
Prog web 09-php-crud-mvc
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
Prog web 04-php-gd
Prog web 04-php-gdProg web 04-php-gd
Prog web 04-php-gd
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Easy Rails
Easy RailsEasy Rails
Easy Rails
 

Php 03 Sessoes Cookies Cabecalhos

  • 1. Programação para WEB Regis Pires Magalhães [email_address] PHP: Sessões, Cookies e Cabeçalhos HTTP
  • 2. Sessões Permitem armazenar informações importantes do usuário do site e acessá-las em qualquer página por determinado período de tempo. Servem para armazenamento de dados no servidor. Pode ser importante armazenar as informações do usuário, como sua identificação de login, seu carrinho de compras, produtos visitados, etc. Um arquivo no servidor é criado por padrão no diretório temporário, com o nome do arquivo iniciando por “sess_” e seguido do ID da sessão: Arquivo: sess_4e2eca1a2b20237ce861d690c68294cf Caminho: C:amppmp
  • 3. ID de Sessão Há 2 formas de passar o ID de sessão para o servidor: Via Cookie (Recomendada) Via parâmetro de URL (só em último caso – cookies desabilitados no navegador) O ID de sessão é inserido diretamente na URL.
  • 4. ID de Sessão via Cookie Ao fazer uso de sessão em PHP, um cookie chamado PHPSESSID (identificador de sessão do PHP) é automaticamente criado no navegador para identificar que sessão está sendo usada no servidor. Este cookie é automaticamente excluído quando o navegador for fechado.
  • 5. Iniciando uma Sessão Para iniciar uma nova sessão ou para abrir uma sessão já iniciada, deve-se usar a função session_start() . session_start() OBRIGATORIAMENTE deve vir antes de qualquer saída HTML.
  • 6. Armazenando algo na Sessão Opções: Via variável $_SESSION Via função session_register()
  • 7. Armazenando algo na Sessão <?php session_start(); $variavel_01 = &quot;Programação&quot; ; $variavel_02 = &quot;para WEB&quot; ; session_register( 'variavel_01' ); $_SESSION [ 'variavel_02' ] = $variavel_02 ; ?> < html > < head > < title > CEFET-PI PHB </ title > </ head > < body > < p > Informações sobre a sessão: </ p > <?php echo '<p>Session ID: ' .session_id(). '</p>' ; print_r( $_SESSION ); ?> </ p > </ body > </ html >
  • 8. Eliminando algo da Sessão session_unregister() Elimina uma determinada variável da sessão. session_unset() Elimina todas as variáveis da sessão.
  • 9. Tempo de vida da Sessão session_cache_expire() Retorna o tempo de expiração das sessões ou define novo tempo de expiração em minutos. Para redefinir o tempo de expiração, deve ser executada antes de session_start() . Tempo padrão de duração da sessão: 180 minutos Para alterar o tempo padrão, deve-se chamar session_cache_expire() a cada página que faça uso da sessão.
  • 10. Destruindo uma Sessão A destruição da sessão é feita através da função session_destroy() . Antes de chamar a função session_destroy(), deve-se primeiro abrir a sessão com session_start() . Essa função é normalmente utilizada quando um usuário requisita sua saída da aplicação (logout).
  • 11. Cookie É uma pequena quantidade de informação armazenada na máquina cliente que possibilita a identificação de informações dos usuários que acessam o servidor. Pode estar na memória do navegador ou armazenada no disco. Contém um par: chave, valor. Usar com moderação. O uso de cookies pode permitir que o usuário após ter se autenticado, desligue o computador, acesse o site um tempo depois e não precise se autenticar novamente. Ex: GMail, Hotmail, Yahoo, etc. Para utilizar esse recurso, o usuário aceita a opção “salvar as minhas informações neste computador”.
  • 12. Informações contidas em um Cookie Nome: PHPSESSID Valor: 4e2eca1a2b20237ce861d690c68294cf Servidor: localhost Caminho: / Enviar: em todos os tipos de conexão Validade: até sair do Firefox
  • 13. Cookie Os cookies são uma parte do cabeçalho HTTP, logo a função setcookie() precisa ser chamada antes que qualquer outro dado seja enviado ao navegador. Qualquer cookie enviado para o cliente automaticamente será incluido no array $_COOKIE. Para armazenar um array em cookies, acrescente [] ao nome do cookie.
  • 14. Adicionando Cookies <?php /* dura até o fechamento do browser */ setcookie( 'meu_cookie1' , 'PHP' ); /* dura 1 hora */ setcookie( 'meu_cookie2' , 'WEB' , time()+ 3600 ); /* dura 1 hora */ setcookie( 'meu_cookie3' , 'NOW' , time()+ 3600 , '/regis/' , '' ); ?>
  • 15. Usando Cookies <?php echo 'meu_cookie1: ' ; echo $_COOKIE [ 'meu_cookie1' ]. '<br/>' ; echo 'meu_cookie2: ' ; echo $_COOKIE [ 'meu_cookie2' ]. '<br/>' ; echo 'meu_cookie3: ' ; echo $_COOKIE [ 'meu_cookie3' ]. '<br/>' ; print_r( $_COOKIE ); ?>
  • 16. Removendo Cookies <?php // configurar valor com string vazia setcookie ( 'meu_cookie1' , '' ); setcookie ( 'meu_cookie2' , '' ); // configurar a data de expiração para o passado setcookie ( 'meu_cookie3' , '' , time() - 3600 ); ?>
  • 17. Adicionando Array em Cookies <?php setcookie( 'pessoa[0]' , 'Maria' ); setcookie( 'pessoa[1]' , 'João' ); setcookie( 'pessoa[2]' , 'José' ); ?>
  • 18. Contadores (session e cookie) <?php session_start(); $_SESSION [ 'contador_session' ]++; setcookie( 'contador_cookie' , $_COOKIE [ 'contador_cookie' ] + 1 ); ?> < html > < head > < title > CEFET-PI PHB </ title > </ head > < body > < p > Contador Session: <?php echo $_SESSION [ 'contador_session' ] ?> < p /> < p > Contador Cookie: <?php echo $_COOKIE [ 'contador_cookie' ] + 1 ?> < p /> <?php print_r( $_COOKIE ); ?> </ body > </ html >
  • 19. Inserindo itens em um array <?php session_start(); if (strlen(trim( $_POST [ 'nome' ])) > 0 ) { if (gettype( $_SESSION [ 'nomes' ]) == 'array' ) { array_push( $_SESSION [ 'nomes' ], $_POST [ 'nome' ]); } else { $_SESSION [ 'nomes' ] = array ( $_POST [ 'nome' ]); } } ?> < html > < head >< title > CEFET-PHB </ title ></ head > < body > < form action = &quot;exemplo_session3.php&quot; method = &quot;post&quot; > < p > Nome: < input name = &quot;nome&quot; type = &quot;text&quot; /></ p > < input type = &quot;submit&quot; value = &quot;Inserir Nome&quot; /> </ form > <?php if (gettype( $_SESSION [ 'nomes' ]) == 'array' ) { echo '<p>Nomes inseridos na sessão:</p>' ; foreach ( $_SESSION [ 'nomes' ] as $item ) { echo $item . '<br/>' ; } } ?> </ body > </ html >
  • 20. Inserindo itens em um array <?php session_start(); if (strlen(trim( $_POST [ 'nome' ])) > 0 ) { $tamanho = count( $_COOKIE [ 'nomes' ]); setcookie( &quot;nomes[ $tamanho ]&quot; , $_POST [ 'nome' ]); } ?> < html > < head >< title > CEFET-PHB </ title ></ head > < body > < form action = &quot;exemplo_session3.php&quot; method = &quot;post&quot; > < p > Nome: < input name = &quot;nome&quot; type = &quot;text&quot; /></ p > < input type = &quot;submit&quot; value = &quot;Inserir Nome&quot; /> </ form > <?php if (gettype( $_COOKIE [ 'nomes' ]) == 'array' ) { echo '<p>Nomes inseridos na sessão:</p>' ; foreach ( $_COOKIE [ 'nomes' ] as $item ) { echo $item . '<br/>' ; } echo $_POST [ 'nome' ]. '<br/>' ; } ?> </ body > </ html >
  • 21. Cabeçalhos HTTP Redirecionamento de página A função exit interrompe a execução do script e pode mostrar uma mensagem. <?php header( 'Location: http://localhost/xampp' ); exit ; ?> <?php $servidor = 'http://' . $_SERVER [ 'HTTP_HOST' ]; header( 'Location: ' . $servidor . '/xampp/' ); exit ; ?>
  • 22. Redirecionamento via HTML < html > < head > < meta http-equiv = &quot;refresh&quot; content = &quot;0;url=http://localhost/xampp/&quot; /> </ head > < body > < p > Redirecionando... </ p > </ body > </ html >
  • 23. Autenticação HTTP O protocolo HTTP permite o pedido de usuário e senha via janela pop-up. Isso é feito através do cabeçalho WWW-Authenticate. Após a autenticação, as seguintes variáveis são criadas: $_SERVER['PHP_AUTH_USER'] – Usuário $_SERVER['PHP_AUTH_PW'] – Senha $_SERVER['PHP_AUTH_TYPE'] – Basic
  • 24. Autenticação HTTP <?php function authenticate() { header( 'WWW-Authenticate: Basic realm=&quot;CEFET-PHB&quot;' ); header( 'HTTP/1.0 401 Unauthorized' ); echo 'Usuário ou senha invalido(s).' ; exit ; } if (! isset ( $_SERVER [ 'PHP_AUTH_USER' ])) { authenticate(); } if ( $_SERVER [ 'PHP_AUTH_USER' ] != 'regis' || $_SERVER [ 'PHP_AUTH_PW' ] != '1234' ) { authenticate(); } ?> < html > < head >< title > CEFET-PHB </ title ></ head > < body > < p > Bem-vindo ao nosso site!!! </ p > </ body > </ html >
  • 25. CAPTCHA <!-- exemplo_captcha.php --> < html > < head > < title > CEFET-PHB </ title > </ head > < body > < h1 > CAPTCHA </ h1 > < p > Completely Automated Public Turing test to tell Computers and Humans Apart </ p > < p > teste de Turing público completamente automatizado para diferenciar entre computadores e humanos </ p > < img src = &quot;exemplo_captcha2.php&quot; /> </ body > </ html >
  • 26. CAPTCHA <?php // exemplo_captcha2.php header( 'Content-type: image/png' ); // Requisitos mínimos if (!function_exists( &quot;gd_info&quot; )) { echo &quot;Biblioteca GD não instalada.&quot; ; exit (); } // Criar a imagem $imagem = @imagecreate( 100 , 100 ); // Criar a paleta de cores $branco = @imagecolorallocate( $imagem , 0xFF , 0xFF , 0xFF ); $azulescuro = @imagecolorallocate( $imagem , 0x00 , 0x00 , 0x80 ); $verde = @imagecolorallocate( $imagem , 0x00 , 0xFF , 0x00 ); $verdeescuro = @imagecolorallocate( $imagem , 0x00 , 0x80 , 0x00 ); $vermelhoescuro = @imagecolorallocate( $imagem , 0x80 , 0x00 , 0x00 ); // Desenhar linhas aleatórias for ( $i = 0 ; $i < 3 ; $i ++) @imageline( $imagem ,rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ), $vermelhoescuro ); for ( $i = 0 ; $i < 3 ; $i ++) @imageline( $imagem ,rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ), $verdeescuro ); for ( $i = 0 ; $i < 3 ; $i ++) @imageline( $imagem ,rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ),rand( 0 , 99 ), $verde ); // Escrever palavra-passe aleatória for ( $i = 0 ; $i < 4 ; $i ++) @imagestring( $imagem , 6 , 32 + 10 * $i , 32 +rand(- 5 , 5 ),rand( 1 , 9 ), $azulescuro ); // Rotacionar a imagem $imagem = @imagerotate( $imagem , 10 , $branco ); // Finalização da imagem @imagepng( $imagem ); ?>