Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > 703d980c580707c382b4e43e25965bc5 > files > 12086

php-manual-pt_BR-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Funções de manpulação de Sessões</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Manual do PHP"
HREF="index.html"><LINK
REL="UP"
TITLE="Referência das Funções"
HREF="funcref.html"><LINK
REL="PREVIOUS"
TITLE="session_pgsql_status"
HREF="function.session-pgsql-status.html"><LINK
REL="NEXT"
TITLE="session_cache_expire"
HREF="function.session-cache-expire.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="reference"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Manual do PHP</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="function.session-pgsql-status.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="function.session-cache-expire.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="reference"
><A
NAME="ref.session"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="title"
>CXLIX. Funções de manpulação de Sessões</H1
><DIV
CLASS="PARTINTRO"
><A
NAME="AEN203007"
></A
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.intro"
>Introdução</A
></H1
><P
>&#13;     O suporte a sessões no PHP consiste em uma maneira de preservar certos dados
     atráves dos acessos subsequentes. Isto permite a você fazer aplicações mais
     personalizadas e melhorar a aparência do seu web site
    </P
><P
>&#13;     Um visitante acessando o seu web site ganha um identificados único,
     o assim chamado id de sessão. Este é salvo em um cookie do lado do 
     usuário ou propagado via URL.
    </P
><P
>&#13;     O suporte a sessão permite a você registrar um numero arbritario
     de variáveis que serão preservadas entre as requisições. Quando um visitante
     acessar o seu site, o PHP irá conferir automaticamente (se <A
HREF="ref.session.html#ini.session.auto-start"
>session.auto_start</A
>
     estiver definido como 1) ou quando você pedir (explicitamente atráves de 
     <A
HREF="function.session-start.html"
><B
CLASS="function"
>session_start()</B
></A
> ou implicitamente atráves de 
     <A
HREF="function.session-register.html"
><B
CLASS="function"
>session_register()</B
></A
>) quando um id de sessão especifico
     for enviado com a requisição. Se este for o caso, o ambiente
     anteriormente salvo é recriado.
    </P
><DIV
CLASS="caution"
><P
></P
><TABLE
CLASS="caution"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Cuidado</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;       Se você ativar <A
HREF="ref.session.html#ini.session.auto-start"
>&#13;       session.auto_start</A
> então você não poderá colocar objetos em
       suas sessões já que a definição deve ser carregada
       antes de começar a sessão para poder recriar os
       objetos da sua sessão.
      </P
></TD
></TR
></TABLE
></DIV
><P
>&#13;     Todas as variáveis são serializadas depois das solicitações terminarem.
     Variáveis registradas as quais não estejam definidas são marcadas como
     sendo não definidas. Nos acessos subsequentes, estas não são
     definidas pelo modulo da sessão a menos que o usuário defina elas posteriormente.
    </P
><DIV
CLASS="warning"
><P
></P
><TABLE
CLASS="warning"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Atenção</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;      Alguns tipos de dados não podem ser serializados e assim guardados em sessões.
      Isso inclui variáveis de <A
HREF="language.types.resource.html"
><B
CLASS="type"
>resource</B
></A
>(recursos) ou objetos com
      referencias circulares (ex. objetos que passam uma referencia de
      sí mesmo para outro objeto).
     </P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      A manipulação de sessões foi adicionado no PHP 4.0.
     </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Por favor note que ao trabalhar com sessões que um registro da sessão não é
      criado até que a variável seja registrada usando a função
      <A
HREF="function.session-register.html"
><B
CLASS="function"
>session_register()</B
></A
> ou pela adição de uma
      nova chave a array superglobal <CODE
CLASS="varname"
>$_SESSION</CODE
>. Isto
      é verdadeiro não importando se uma sessão foi iniciada usando a função 
      <A
HREF="function.session-start.html"
><B
CLASS="function"
>session_start()</B
></A
>. 
     </P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.security"
>Sessões e segurança</A
></H1
><P
>&#13;     Links externos: <A
HREF="http://www.acros.si/papers/session_fixation.pdf"
TARGET="_top"
>Session fixation</A
>
    </P
><P
>&#13;     O módulo das sessões não pode garantir que a informação que você guarda
     em uma sesão será visto somente pelo usuário que criou a sessão. Você precisa
     tomar medidas adicionais de segurança para proteger ativamente a integridade
     da sessão, dependendo do valor dos dados.
    </P
><P
>&#13;     Meça a importancia dos dados carregados pelas suas sessões e 
     tome medidas adicionais de proteção -- isto normalmente vem com um preço, menos
     convêniencia para o usuário. Por exemplo, se você quiser proteger os usuários
     de taticas simples de engenharia social, você deve ativar 
     <TT
CLASS="literal"
>session.use_only_cookies</TT
>. Neste caso,
     os cookies devem estar ativados incondicionalmente do lado do usuário ou
     as sessões não irão funcionar.
    </P
><P
>&#13;     Existem várias maneiras de vazar um id de uma sessão para terceiros.
     Um id de sessão vazado permite a terceiros acessar a todos os recursos
     que estão associados ao id especifico. Primeiro, URL´s carregando ids de sessão.
     Se você criar um link com um site externo, a URL inclusa no id de sessão
     deve ser guardada nos logs de referência do site externo. Segundo, um ataque mais
     ativo pode escutar ao seu tráfego de rede. Se ele não for criptografado,
     os ids de sessão irão passar como texto simples pela sua rede. A solução aqui
     é implementar SSL em seu servidor e tornar obrigatório para os seus usuários.
    </P
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.requirements"
>Dependências</A
></H1
><P
>Nenhuma biblioteca externa é necessária para compilar esta extensão.</P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Opcionalmente você pode usar alocação de memória compartilhada (mm), desenvolvida por
      Ralf S. Engelschall, para salvar a sessão. Você terá que baixar
      <A
HREF="http://www.ossp.org/pkg/lib/mm/"
TARGET="_top"
>mm</A
> e instala-lo. esta opção não esta disponível 
      para plataformas windows. Note que o módulo de sessões para o
      mm não garante que acessos concorrentes a mesma sessão
      sejam travados propriamente. Pode ser mais apropriado usar um sistema de arquivos
      baseado em memória compartilhada (como tmpfs em Solaris/Linux, ou /dev/md em BSD) para
      salvar sessões em arquivos, por que eles são propriamente travados.
      Os dados das sessões são salvos na memória então se o servidor for reiniciado os dados são excluídos.
     </P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.installation"
>Instalação</A
></H1
><P
>&#13;  Suporte a sessões está habilitado no PHP por definição. Se você não
  gostaria de construir o seu PHP sem esse suporte, você especificaria a opção
   <CODE
CLASS="option"
>--disable-session</CODE
>
  para configurar. Para utilizar uma alocação de memória dividida (mm) para armazenamento de sessão configure o PHP com <CODE
CLASS="option"
>--with-mm[=DIR] </CODE
>.
 </P
><P
>A versão para Windows do <TT
CLASS="literal"
>PHP</TT
>
 tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão
 adicional para utilizar essas funções.</P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
   Por definição, todos os dados relaciondos uma uma sessão em particular
   serão guardados num arquivo no diretório especificado 
   pela opção session.save_path INI .
   Um arquivo para cada sessão (apesar de quaisquer dados estarem associados
   com essa sessão) será criada. Isto é devido ao fato de que uma sessão é
   aberta (um aquivo é criado) mas até então nenhum dado é escrito nesse
   arquivo. Note que este comportamento é um efeito colateral da limitação
   do traalho com o arquivo de sistema e é possível que um manipulador de
   sessão customizado(tal como é usado em banco de dados)  
   não manterá registro de sessões
   que não guardaram nenhum dado. 
  </P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.configuration"
>Configurações em execução</A
></H1
><P
>&#13;O comportamento dessas funções podem ser modificado pelas configurações do <TT
CLASS="filename"
>php.ini</TT
>.
</P
><P
>&#13; <DIV
CLASS="table"
><A
NAME="AEN203058"
></A
><P
><B
>Tabela 1. Opções de configuração da sessão</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><COL><THEAD
><TR
><TH
>Nome</TH
><TH
>Padrão</TH
><TH
>Modificável</TH
><TH
>Mudanças</TH
></TR
></THEAD
><TBODY
><TR
><TD
>session.save_path</TD
><TD
>"/tmp"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.name</TD
><TD
>"PHPSESSID"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.save_handler</TD
><TD
>"files"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.auto_start</TD
><TD
>"0"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.gc_probability</TD
><TD
>"1"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.gc_divisor</TD
><TD
>"100"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.gc_maxlifetime</TD
><TD
>"1440"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.serialize_handler</TD
><TD
>"php"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.cookie_lifetime</TD
><TD
>"0"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.cookie_path</TD
><TD
>"/"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.cookie_domain</TD
><TD
>""</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.cookie_secure</TD
><TD
>""</TD
><TD
>PHP_INI_ALL</TD
><TD
>Available since PHP 4.0.4.</TD
></TR
><TR
><TD
>session.cookie_httponly</TD
><TD
>""</TD
><TD
>PHP_INI_ALL</TD
><TD
>Available since PHP 5.2.0.</TD
></TR
><TR
><TD
>session.use_cookies</TD
><TD
>"1"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.use_only_cookies</TD
><TD
>"0"</TD
><TD
>PHP_INI_ALL</TD
><TD
>Disponível desde o PHP 4.3.0</TD
></TR
><TR
><TD
>session.referer_check</TD
><TD
>""</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.entropy_file</TD
><TD
>""</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.entropy_length</TD
><TD
>"0"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.cache_limiter</TD
><TD
>"nocache"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.cache_expire</TD
><TD
>"180"</TD
><TD
>PHP_INI_ALL</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>session.use_trans_sid</TD
><TD
>"0"</TD
><TD
>PHP_INI_ALL</TD
><TD
>PHP_INI_ALL no PHP &#60;= 4.2.3. PHP_INI_PERDIR no PHP &#60; 5.
      Disponível desde o PHP 4.0.3.</TD
></TR
><TR
><TD
>session.bug_compat_42</TD
><TD
>"1"</TD
><TD
>PHP_INI_ALL</TD
><TD
>Disponível desde o PHP 4.3.0</TD
></TR
><TR
><TD
>session.bug_compat_warn</TD
><TD
>"1"</TD
><TD
>PHP_INI_ALL</TD
><TD
>Disponível desde o PHP 4.3.0</TD
></TR
><TR
><TD
>session.hash_function</TD
><TD
>"0"</TD
><TD
>PHP_INI_ALL</TD
><TD
>Disponível desde o PHP 5.0.0</TD
></TR
><TR
><TD
>session.hash_bits_per_character</TD
><TD
>"4"</TD
><TD
>PHP_INI_ALL</TD
><TD
>Disponível desde o PHP 5.0.0</TD
></TR
><TR
><TD
>url_rewriter.tags</TD
><TD
>"a=href,area=href,frame=src,form=,fieldset="</TD
><TD
>PHP_INI_ALL</TD
><TD
>Disponível desde o PHP 4.0.4.</TD
></TR
></TBODY
></TABLE
></DIV
>
   Para mais detalhes e definições das constantes
 PHP_INI_*, veja <A
HREF="ini.html"
>Apêndice H</A
>.
 </P
><P
>&#13;  O sistema de gerenciamento de sessões suporta um número de opções de configuração que você pode colocar em seu arquivo <TT
CLASS="filename"
>php.ini</TT
>. Nós daremos
  um breve resumo.
 <P
></P
><DIV
CLASS="variablelist"
><DL
><DT
><A
NAME="ini.session.save-handler"
></A
><CODE
CLASS="parameter"
>session.save_handler</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.save_handler</TT
> define o nome do manipulador que é usado para guardar e devolver dados associados com a sessão.
	 Padrão inicial  <TT
CLASS="literal"
>files</TT
>. Veja também
     <A
HREF="function.session-set-save-handler.html"
><B
CLASS="function"
>session_set_save_handler()</B
></A
>.
    </P
></DD
><DT
><A
NAME="ini.session.save-path"
></A
><CODE
CLASS="parameter"
>session.save_path</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.save_path</TT
>  define o argumento que é passado para o manipulador de salvação. Se você escolher o manipulador de
	 ausência de arquivo, este é o local onde os arquivos serão criados. 
	 Padrão <TT
CLASS="literal"
>/tmp</TT
>.  Veja também
     <A
HREF="function.session-save-path.html"
><B
CLASS="function"
>session_save_path()</B
></A
>. 
    </P
><P
>&#13;     Há um argumento N opcional para esta dietiva que determina o número
	 de níveis de diretório que seus arquivos de sessão serão extendidos.
     Por exemplo, definindo para <TT
CLASS="literal"
>'5;/tmp'</TT
>
     pode levar a criação de um arquivo de sessão e localização como
	 <TT
CLASS="literal"
>/tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If
     </TT
>.  Para fazer uso do N você deve criar todos estes diretórios antes de usar.  Um pequeno script shell existe em
     <TT
CLASS="filename"
>ext/session</TT
> para fazer isto, ele é chamado     <TT
CLASS="filename"
>mod_files.sh</TT
>. Também note se N é usada e maior
	  do que and greater than 0 então a "automatic garbage collection" não
	  será executada, veja uma cópia do <TT
CLASS="filename"
>php.ini</TT
> para mais informação.
	  Veja, se você usa N if you use N, be certifique-se de cercar
     <TT
CLASS="literal"
>session.save_path</TT
> com  
     "aspas" porque o separador (<TT
CLASS="literal"
>;</TT
>) é
     também usado para comentátios no <TT
CLASS="filename"
>php.ini</TT
>.
    </P
><DIV
CLASS="warning"
><P
></P
><TABLE
CLASS="warning"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Atenção</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;      Se você deixar isto definido num diretório de leitura público, 
	  tal como <TT
CLASS="filename"
>/tmp</TT
> (o padrão), outros usuários no
	  servidor poderão raptar sessõoes pegando a lista de arquivos nesse
	  diretório.
     </P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
       Antes do PHP 4.3.6 os usuários de Windows tem que mudar esta variável para
       fazer funções de sessão no PHP. Certifique-se de especifica um caminho válido, ex.:
      <TT
CLASS="filename"
>c:/temp</TT
>.
     </P
></BLOCKQUOTE
></DIV
></DD
><DT
><A
NAME="ini.session.name"
></A
><CODE
CLASS="parameter"
>session.name</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.name</TT
> especifíca o nome da sessão que é usada como um nome de cookie. Ele somente conteria caracteres alfanuméricos. 
     Padrão inicial <TT
CLASS="literal"
>PHPSESSID</TT
>.
     Veja também <A
HREF="function.session-name.html"
><B
CLASS="function"
>session_name()</B
></A
>.
    </P
></DD
><DT
><A
NAME="ini.session.auto-start"
></A
><CODE
CLASS="parameter"
>session.auto_start</CODE
>
    <A
HREF="language.types.boolean.html"
><B
CLASS="type"
>boolean</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.auto_start</TT
> especifíca se o módulo da sessão
	 começou uma sessão automaticamente num pedido no início. Definido
	 iniciamente em <TT
CLASS="literal"
>0</TT
> (desabilitado).
    </P
></DD
><DT
><A
NAME="ini.session.serialize-handler"
></A
><CODE
CLASS="parameter"
>session.serialize_handler</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.serialize_handler</TT
> define o nome do
	 manipulador que é usado para publicar/despublicar dados em série 
	 (serialize/deserialize). Atualmente, como um formato interno no
	 PHP (nome <TT
CLASS="literal"
>php</TT
>) e WDDX é suportado (nome
     <TT
CLASS="literal"
>wddx</TT
>). WDDX está apenas disponível, se o PHP
	 está compilado com <A
HREF="ref.wddx.html"
> suporte a WDDX
     </A
>. Definição inicial <TT
CLASS="literal"
>php</TT
>.
    </P
></DD
><DT
><A
NAME="ini.session.gc-probability"
></A
><CODE
CLASS="parameter"
>session.gc_probability</CODE
>
    <A
HREF="language.types.integer.html"
><B
CLASS="type"
>integer</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.gc_probability</TT
> em conjunto com 
     <TT
CLASS="literal"
>session.gc_divisor</TT
> é usado para gerenciar a probabilidade
     que o gc (coletor de lixo) seja iniciado.
     O padrão é <TT
CLASS="literal"
>1</TT
>. Veja <A
HREF="ref.session.html#ini.session.gc-divisor"
>session.gc_divisor</A
> para detalhes.
    </P
></DD
><DT
><A
NAME="ini.session.gc-divisor"
></A
><CODE
CLASS="parameter"
>session.gc_divisor</CODE
>
    <A
HREF="language.types.integer.html"
><B
CLASS="type"
>integer</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.gc_divisor</TT
> em conjunto com
     <TT
CLASS="literal"
>session.gc_probability</TT
> define a probabilidade
     que o processo do gc (coletor de lixo) seja iniciado na inicialização de
     cada sessão.
     A propabilidade é cauculada usando gc_probability/gc_divisor,
     ex. 1/100 indica que existe 1% de chance que o processo GC comece
     em cada requisição..
     O padrão para <TT
CLASS="literal"
>session.gc_divisor</TT
> é <TT
CLASS="literal"
>100</TT
>.
    </P
></DD
><DT
><A
NAME="ini.session.gc-maxlifetime"
></A
><CODE
CLASS="parameter"
>session.gc_maxlifetime</CODE
>
    <A
HREF="language.types.integer.html"
><B
CLASS="type"
>integer</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.gc_maxlifetime</TT
> especifíca o número de
      segundos após os dados terem sido considerados como lixo ('garbage')
      e limpados. Isso ocorre durante o início da sessão
      Desde o PHP 4.2.3 é usado mtime (data de modificação) ao invés de atime. Assim você
      não terá problemas em sistemas de arquivos onde atime não esteja disponível.   
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Se scripts diferentes tem valores diferentes para
      <TT
CLASS="literal"
>session.gc_maxlifetime</TT
> mas compartilham o mesmo lugar para
      guardar os dados da sessão então o script com o menor valor estara
      limpando os dados. Neste caso, use esta diretiva em conjunto com <A
HREF="ref.session.html#ini.session.save-path"
>session.save_path</A
>.
     </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>Se você está usando o file-based session handler como padrão, seu sistema de arquivos deve manter registrado quantidade de acessos
	 (atime).  Windows FAT dessa forma não faz, então você terá que sugerir
	 outro modo para manipular a coleção de lixo de sua sessão se você está num sistema FAT ou quaisquer outros fs onde quantidade de acessos
	 (atime tracking) não está disponível.
     </P
></BLOCKQUOTE
></DIV
></DD
><DT
><A
NAME="ini.session.referer-check"
></A
><CODE
CLASS="parameter"
>session.referer_check</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.referer_check</TT
> contém a 
     substring que você quer checar para cada referenciador 
	 (Referer) de HTTP. Se o referenciador foi enviado pelo cliente e a sustring não foi encontrada, a id de sessão embutida será marcada como inválida.
     O padrão é uma string vazia.
    </P
></DD
><DT
><A
NAME="ini.session.entropy-file"
></A
><CODE
CLASS="parameter"
>session.entropy_file</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.entropy_file</TT
> diz o caminho para um recurso externo (arquivo) que será usado como uma fonte de desordem no processo de criação da id da sessão. Exemplos são 
     <TT
CLASS="literal"
>/dev/random</TT
> or <TT
CLASS="literal"
>/dev/urandom</TT
>
     que são disponíveis em muitos sistemas UNIX.
    </P
></DD
><DT
><A
NAME="ini.session.entropy-length"
></A
><CODE
CLASS="parameter"
>session.entropy_length</CODE
>
    <A
HREF="language.types.integer.html"
><B
CLASS="type"
>integer</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.entropy_length</TT
> especifíca o número de bytes
	 que serão lidos do arquivo especificado acima. Definido inicialmente como <TT
CLASS="literal"
>0</TT
> (desabilitado).
    </P
></DD
><DT
><A
NAME="ini.session.use-cookies"
></A
><CODE
CLASS="parameter"
>session.use_cookies</CODE
>
    <A
HREF="language.types.boolean.html"
><B
CLASS="type"
>boolean</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.use_cookies</TT
> especifica se módulo utilizará cookies para guardar a id da sessão no lado do cliente. O padrão é <TT
CLASS="literal"
>1</TT
> (habilitado).
    </P
></DD
><DT
><A
NAME="ini.session.use-only-cookies"
></A
><CODE
CLASS="parameter"
>session.use_only_cookies</CODE
>
    <A
HREF="language.types.boolean.html"
><B
CLASS="type"
>boolean</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.use_only_cookies</TT
> especifica que o módulo
	 usará <SPAN
CLASS="strong"
><B
CLASS="emphasis"
>apenas</B
></SPAN
> cookies para guardar a id no lado do cliente.
	 Habilitando esta configuração previne ataques envolvendo
	 passagem de ids de sessão nas URLs. Esta configuração foi adicionada 
	 no PHP
     4.3.0.
    </P
></DD
><DT
><A
NAME="ini.session.cookie-lifetime"
></A
><CODE
CLASS="parameter"
>session.cookie_lifetime</CODE
>
    <A
HREF="language.types.integer.html"
><B
CLASS="type"
>integer</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.cookie_lifetime</TT
> especifica o tempo de
	 vida do cookie em segundos que é enviado para o browser. O valor 0
     significa "até o browser ser fechado." O padrão é 
     <TT
CLASS="literal"
>0</TT
>. Veja também
     <A
HREF="function.session-get-cookie-params.html"
><B
CLASS="function"
>session_get_cookie_params()</B
></A
> e
     <A
HREF="function.session-set-cookie-params.html"
><B
CLASS="function"
>session_set_cookie_params()</B
></A
>.
     Já que o cookie é retornado pelo browser, ele não é prolongado
     para todo o tempo necessário. Ele deve ser enviado manualmente usando
     <A
HREF="function.setcookie.html"
><B
CLASS="function"
>setcookie()</B
></A
>.
    </P
></DD
><DT
><A
NAME="ini.session.cookie-path"
></A
><CODE
CLASS="parameter"
>session.cookie_path</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.cookie_path</TT
> especifica o caminho para
	 definir em session_cookie. O padrão é <TT
CLASS="literal"
>/</TT
>. Veja também
     <A
HREF="function.session-get-cookie-params.html"
><B
CLASS="function"
>session_get_cookie_params()</B
></A
> e
     <A
HREF="function.session-set-cookie-params.html"
><B
CLASS="function"
>session_set_cookie_params()</B
></A
>.
    </P
></DD
><DT
><A
NAME="ini.session.cookie-domain"
></A
><CODE
CLASS="parameter"
>session.cookie_domain</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.cookie_domain</TT
> especifica o domínio para
     definir no cookie de sessão. O padrão é nenhum significando o nome do servidor
     que gerou o cookie de arcordo com a especificação dos cookies.
     Veja também <A
HREF="function.session-get-cookie-params.html"
><B
CLASS="function"
>session_get_cookie_params()</B
></A
> e
     <A
HREF="function.session-set-cookie-params.html"
><B
CLASS="function"
>session_set_cookie_params()</B
></A
>.
    </P
></DD
><DT
><A
NAME="ini.session.cookie-secure"
></A
><CODE
CLASS="parameter"
>session.cookie_secure</CODE
>
    <A
HREF="language.types.boolean.html"
><B
CLASS="type"
>boolean</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.cookie_secure</TT
> especifíca se o cookie seria apenas enviado sob conexões seguras. O padrão é 
     <TT
CLASS="literal"
>off</TT
>.
     Esta definição foi adicionada no PHP
     4.0.4. Veja também
     <A
HREF="function.session-get-cookie-params.html"
><B
CLASS="function"
>session_get_cookie_params()</B
></A
> e
     <A
HREF="function.session-set-cookie-params.html"
><B
CLASS="function"
>session_set_cookie_params()</B
></A
>.
    </P
></DD
><DT
><A
NAME="ini.session.cookie-httponly"
></A
><CODE
CLASS="parameter"
>session.cookie_httponly</CODE
>
   <A
HREF="language.types.boolean.html"
><B
CLASS="type"
>boolean</B
></A
></DT
><DD
><P
>&#13;    marca o cookie para ser acessível apenas atráves do protocolo HTTP. Isto significa
    que o cookie não será acessível por linguagens de script, como o
    JavaScript. Esta definição pode efetivamente reduzir o roubo de identidade
    atráves de ataques XSS (mesmo não sendo suportado por todos os browsers).
   </P
></DD
><DT
><A
NAME="ini.session.cache-limiter"
></A
><CODE
CLASS="parameter"
>session.cache_limiter</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.cache_limiter</TT
> especifíca o método de
	 controle do cache para usar em páginas de sessão
     (none/nocache/private/private_no_expire/public). O padrão é
     <TT
CLASS="literal"
>nocache</TT
>. Veja também
     <A
HREF="function.session-cache-limiter.html"
><B
CLASS="function"
>session_cache_limiter()</B
></A
>.
    </P
></DD
><DT
><A
NAME="ini.session.cache-expire"
></A
><CODE
CLASS="parameter"
>session.cache_expire</CODE
>
    <A
HREF="language.types.integer.html"
><B
CLASS="type"
>integer</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.cache_expire</TT
> especifíca o time-to-live
	 (termo de internet - um campo do ip header que indica o tamanho 
	 do pacote que seria permitido durar antes de ser descartado)
     para páginas de sessão em minutos, este não tem efeito para 
     nocache limiter. O padrão é <TT
CLASS="literal"
>180</TT
>. Veja também
     <A
HREF="function.session-cache-expire.html"
><B
CLASS="function"
>session_cache_expire()</B
></A
>.
    </P
></DD
><DT
><A
NAME="ini.session.use-trans-sid"
></A
><CODE
CLASS="parameter"
>session.use_trans_sid</CODE
>
    <A
HREF="language.types.boolean.html"
><B
CLASS="type"
>boolean</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.use_trans_sid</TT
> se suporte a 
	 sid transparente está habilitado ou não. O padrão é
     <TT
CLASS="literal"
>0</TT
> (desabilitado).
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Para PHP 4.1.2 ou inferior, ele só é habilitado se fizer a opção
	  na compilação com 
      <A
HREF="configure.html#configure.enable-trans-sid"
> 
      <TT
CLASS="literal"
>--enable-trans-sid</TT
></A
>.
      A partir do PHP 4.2.0, está sempre compilado.
     </P
><P
>&#13;      Gerenciamentode sessões baseadas na URL tem riscos de segurança adicionais comparados ao gerenciamento baseado em cookies. Usuários
	   podem enviar uma URL que contenha uma ID de sessão ativa para seus amigos por e-mail ou usuários pode salvar uma URL que contenha uma 
	   ID de sessão para seus bookmarks e acessar seu site com a mesma ID de sessão sempre, por exemplo.
     </P
></BLOCKQUOTE
></DIV
></DD
><DT
><A
NAME="ini.session.bug-compat-42"
></A
><CODE
CLASS="parameter"
>session.bug_compat_42</CODE
>
    <A
HREF="language.types.boolean.html"
><B
CLASS="type"
>boolean</B
></A
></DT
><DD
><P
>&#13;     Versões do PHP 4.2.3 and ou inferior não tem documentado atributo/bug  que te mostre como inicializar uma variável de sessão no escopo global,
	 embora <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
>
     está desabilitado.  PHP 4.3.0 e mais novos avisarão você,se este atributo está sendo usado, e se
	 <A
HREF="ref.session.html#ini.session.bug-compat-warn"
>&#13;     session.bug_compat_warn</A
> está também habilitado. 
     Este funcionamento/bug pode ser desativado se desativando esta diretiva. 
    </P
></DD
><DT
><A
NAME="ini.session.bug-compat-warn"
></A
><CODE
CLASS="parameter"
>session.bug_compat_warn</CODE
>
    <A
HREF="language.types.boolean.html"
><B
CLASS="type"
>boolean</B
></A
></DT
><DD
><P
>&#13;     Versões do PHP 4.2.0 e inferiores não tem documentados
	 atributo/bug te indique como começar uma variável de sessão no escopo 
	 global, embora
	 <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
>
     esteja desabilitado.  PHP 4.3.0 e posteriores avisarão a você, se este atributo está sendo usado habilitado em ambos 
     <A
HREF="ref.session.html#ini.session.bug-compat-42"
>session.bug_compat_42</A
>
     and <A
HREF="ref.session.html#ini.session.bug-compat-warn"
>&#13;     session.bug_compat_warn</A
>.
    </P
></DD
><DT
><A
NAME="ini.session.hash-function"
></A
><CODE
CLASS="parameter"
>session.hash_function</CODE
>
    <A
HREF="language.types.integer.html"
><B
CLASS="type"
>integer</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.hash_function</TT
> permite a você especificar o algoritimo de
     hash usado para gerar os IDs de sessão. '0' indica MD5 (128 bits) e
     '1' indica SHA-1 (160 bits).
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Isto foi introduzido no PHP 5.
     </P
></BLOCKQUOTE
></DIV
></DD
><DT
><A
NAME="ini.session.hash-bits-per-character"
></A
><CODE
CLASS="parameter"
>session.hash_bits_per_character</CODE
>
    <A
HREF="language.types.integer.html"
><B
CLASS="type"
>integer</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>session.hash_bits_per_character</TT
> permite a você definir
     quantos bits são guardaddos em cada caractere ao converter os dados binários
     de hash para algo que possa ser legível. Os valores possíveis são '4' (0-9, a-f),
     '5' (0-9, a-v), e '6' (0-9, a-z, A-Z, "-", ",").
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Isto foi introduzido no PHP 5.
     </P
></BLOCKQUOTE
></DIV
></DD
><DT
><A
NAME="ini.url-rewriter.tags"
></A
><CODE
CLASS="parameter"
>url_rewriter.tags</CODE
>
    <A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
></DT
><DD
><P
>&#13;     <TT
CLASS="literal"
>url_rewriter.tags</TT
> epecifíca quais tags HTML
     são reescritas para incluir a id de sessão se o suporte
	 a sid transparente está habilitado. 
	 O padrão é     <TT
CLASS="literal"
>a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=</TT
>
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      Se você quer conformidade XHTML, remova a entrada <TT
CLASS="literal"
>form</TT
> e utilize as tags &#60;fieldset&#62; em 
	  volta dos campos de formulário.
     </P
></BLOCKQUOTE
></DIV
></DD
></DL
></DIV
>
 </P
><P
>&#13;  As definições de configuração<A
HREF="ini.core.html#ini.track-vars"
><TT
CLASS="literal"
>track_vars</TT
></A
> e
  <A
HREF="ini.core.html#ini.register-globals"
><TT
CLASS="literal"
>register_globals</TT
></A
>
  influenciam como as variáveis de sessão são guardadas e restauradas.
 </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
   No PHP 4.0.3, <A
HREF="ini.core.html#ini.track-vars"
><TT
CLASS="literal"
>track_vars</TT
></A
> está sempre ligada.
  </P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.resources"
>Tipos Resource</A
></H1
><P
>Esta extensão não possui nenhum tipo resource.</P
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.constants"
>Constantes pré-definidas</A
></H1
><P
>&#13;As contantes abaixo são definidas por esta extensão e somente
 estarão disponíveis quando a extensão foi compilada com o PHP
 ou carregada dinamicamente durante a execução.
</P
><P
></P
><DIV
CLASS="variablelist"
><DL
><DT
><TT
CLASS="constant"
><B
>SID</B
></TT
> 
    (<A
HREF="language.types.string.html"
><B
CLASS="type"
>string</B
></A
>)</DT
><DD
><P
>&#13;     Constantes contendo o nome da sessão e o ID da sessão 
     na forma de <TT
CLASS="literal"
>"name=ID"</TT
> ou uma string
     vazia no caso de o ID não tenha sido apropriadamente salvo em um cookie de seção.
    </P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.examples"
>Exemplos</A
></H1
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      A partir do PHP 4.1.0, <CODE
CLASS="varname"
>$_SESSION</CODE
> esta disponível como uma
      variável global como <CODE
CLASS="varname"
>$_POST</CODE
>,
      <CODE
CLASS="varname"
>$_GET</CODE
>, <CODE
CLASS="varname"
>$_REQUEST</CODE
> e assim por diante.
      Diferentemente de <CODE
CLASS="varname"
>$HTTP_SESSION_VARS</CODE
>,
      <CODE
CLASS="varname"
>$_SESSION</CODE
> é sempre global. Entretanto, você não 
      precisa usar a palavra <A
HREF="language.variables.scope.html"
><B
CLASS="command"
>global</B
></A
>
      para <CODE
CLASS="varname"
>$_SESSION</CODE
>. por favor note que esta 
      documentação foi modifcada para usar
      <CODE
CLASS="varname"
>$_SESSION</CODE
> em todos os lugares. Você pode substituir
      <CODE
CLASS="varname"
>$HTTP_SESSION_VARS</CODE
> por
      <CODE
CLASS="varname"
>$_SESSION</CODE
>, se você prefirir. Também note
      que você precisa começar a sua sessão usando <A
HREF="function.session-start.html"
><B
CLASS="function"
>session_start()</B
></A
> 
      antes que <CODE
CLASS="varname"
>$_SESSION</CODE
> esteja disponível.
     </P
><P
>&#13;      As chaves para a array associativa <CODE
CLASS="varname"
>$_SESSION</CODE
> 
      estão sujeitas ao mesmas limitações
      que as os nomes de variáveis regulares do PHP, ex elas não
      podem começar com um numero e devem começar com uma letra ou sublinhado;.
      Para maiores detalhes veja a sessão sobre
      <A
HREF="language.variables.html"
>variaveis</A
> neste manual.
     </P
></BLOCKQUOTE
></DIV
><P
>&#13;     Se <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
>
     estiver desativado, apenas membros da matriz associativa global
     <CODE
CLASS="varname"
>$_SESSION</CODE
> podem ser registrados como 
     variáveis de sessão. As variavéis de sessão restauradas apenas estarão disponíveis
     na array <CODE
CLASS="varname"
>$_SESSION</CODE
>.
    </P
><P
>&#13;     O uso de <CODE
CLASS="varname"
>$_SESSION</CODE
> (ou
     <CODE
CLASS="varname"
>$HTTP_SESSION_VARS</CODE
> com PHP 4.0.6 ou anterior) é
     recomendado para melhor segurança e facilidade de leitura do código. Com
     <CODE
CLASS="varname"
>$_SESSION</CODE
>, não há necessidade de usar as funções
     <A
HREF="function.session-register.html"
><B
CLASS="function"
>session_register()</B
></A
>,
     <A
HREF="function.session-unregister.html"
><B
CLASS="function"
>session_unregister()</B
></A
>,
     <A
HREF="function.session-is-registered.html"
><B
CLASS="function"
>session_is_registered()</B
></A
>. Variáveis de sessão
     são acessíveis como qualquer outra variável.
     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN203514"
></A
><P
><B
>Exemplo 1. 
       Registrando uma variável com <CODE
CLASS="varname"
>$_SESSION</CODE
>.
      </B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />session_start</font><font color="#007700">();<br /></font><font color="#FF8000">// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less<br /></font><font color="#007700">if (!isset(</font><font color="#0000BB">$_SESSION</font><font color="#007700">[</font><font color="#DD0000">'count'</font><font color="#007700">])) {<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$_SESSION</font><font color="#007700">[</font><font color="#DD0000">'count'</font><font color="#007700">] = </font><font color="#0000BB">0</font><font color="#007700">;<br />} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$_SESSION</font><font color="#007700">[</font><font color="#DD0000">'count'</font><font color="#007700">]++;<br />}<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN203518"
></A
><P
><B
>Exemplo 2. 
       Desregistrando uma variável com <CODE
CLASS="varname"
>$_SESSION</CODE
> e
       <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
> desabilitado.
      </B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />session_start</font><font color="#007700">();<br /></font><font color="#FF8000">// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less<br /></font><font color="#007700">unset(</font><font color="#0000BB">$_SESSION</font><font color="#007700">[</font><font color="#DD0000">'count'</font><font color="#007700">]);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
    </P
><P
>&#13;     <DIV
CLASS="caution"
><P
></P
><TABLE
CLASS="caution"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Cuidado</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;       NÃO desregistre toda a <CODE
CLASS="varname"
>$_SESSION</CODE
> com
       <TT
CLASS="literal"
>unset($_SESSION)</TT
> já que isso irá desativar o
       registro de variáveis de sessão atráves da
       superglobal <CODE
CLASS="varname"
>$_SESSION</CODE
>.
      </P
></TD
></TR
></TABLE
></DIV
>
    </P
><DIV
CLASS="warning"
><P
></P
><TABLE
CLASS="warning"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Atenção</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;      Você não pode usar referencias em variáveis de sessão já que não existe uma 
      maneira de restaurar uma referencia a outra variável.
     </P
></TD
></TR
></TABLE
></DIV
><P
>&#13;     Se <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
>
     estiver ativada, então cada variável global pode ser registrada como uma
     variável de sessão. Após o reinicio da sessão, estas variáveis serão restauradas
     a suas variáveis globais correspondentes. Já que o PHP deve saber quais variáveis
     globais devem ser registradas como variáveis de sessão, o usuário precisa registrar
     as variáveis com a função <A
HREF="function.session-register.html"
><B
CLASS="function"
>session_register()</B
></A
>.
     Você pode evitar isso simplesmente definindo entradas em 
     <CODE
CLASS="varname"
>$_SESSION</CODE
>.
     <DIV
CLASS="caution"
><P
></P
><TABLE
CLASS="caution"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Cuidado</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;       Antes do PHP 4.3, se você estiver usando <CODE
CLASS="varname"
>$_SESSION</CODE
> e voc 
       desabilitou <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
>,
       não use <A
HREF="function.session-register.html"
><B
CLASS="function"
>session_register()</B
></A
>,
       <A
HREF="function.session-is-registered.html"
><B
CLASS="function"
>session_is_registered()</B
></A
> ou
       <A
HREF="function.session-unregister.html"
><B
CLASS="function"
>session_unregister()</B
></A
>.
        Desabilitar <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
>
        é recomendado por motivo de segurança e performance.
      </P
></TD
></TR
></TABLE
></DIV
>
    </P
><P
>&#13;     Se <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
>
     estiver ativada, então as variáveis globais e as entradas em
     <CODE
CLASS="varname"
>$_SESSION</CODE
> irão automaticamente referenciar os mesmos valores
     que estejam registrados na instancia da sessão anterior.
     Entretanto, se a variável for registrada por <CODE
CLASS="varname"
>$_SESSION</CODE
>
     então a variável global estará disponível a partir da proxima requisição.
    </P
><P
>&#13;     Existe um defeito no PHP 4.2.3 e anterior. Se você registrar uma
     nova variável de sessão usando <A
HREF="function.session-register.html"
><B
CLASS="function"
>session_register()</B
></A
>, a
     entrada no escopo global e a entrada em <CODE
CLASS="varname"
>$_SESSION</CODE
>
     não irão se referir ao mesmo valor até o próximo
     <A
HREF="function.session-start.html"
><B
CLASS="function"
>session_start()</B
></A
>. Ex: uma modificação na variável
     global recém registrada não será refletida pela entrada em 
     <CODE
CLASS="varname"
>$_SESSION</CODE
>. Isto foi corrigido no PHP 4.3.
    </P
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.idpassing"
>Passando o ID de Sessão</A
></H1
><P
>&#13;     Existem dois metodos para a propagação do id de sessão:
     <P
></P
><UL
><LI
><P
>&#13;        Cookies
       </P
></LI
><LI
><P
>&#13;        Parâmetro de URL
       </P
></LI
></UL
>
    </P
><P
>&#13;     O módulo de sessão suporta ambos os métodos. Cookies são melhores, mas
     como eles nem sempre estão disponíveis, nós também provemos um caminho alternativo.
     O segundo metodo embute o id de sessão diretamente nas URLs.
    </P
><P
>&#13;     O PHP é capaz de transformar os links transparentemente. A menos que você esteja
     usando o PHP 4.2 ou posterior, você precisa ativar isso manualmente ao compilar o PHP.
     No Unix, passe <A
HREF="ref.session.html#ini.session.use-trans-sid"
>&#13;     --enable-trans-sid</A
> para o configure. Se esta opção de compilação e a 
     opção em tempo execução
     <TT
CLASS="literal"
>session.use_trans_sid</TT
> estiverem ativadas,
     URIs relativas serão modificadas para conter o id de sessão automaticamente.
     <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      A diretiva <A
HREF="ini.core.html#ini.arg-separator.output"
>arg_separator.output</A
>
      <TT
CLASS="filename"
>php.ini</TT
> permite a você personalizar o separador de argumentos. Para estar
      em completa conformidade com XHTML, especifique &#38;amp; aqui.
      </P
></BLOCKQUOTE
></DIV
> 
    </P
><P
>&#13;     Alternativamente, você pode usar a constante <TT
CLASS="literal"
>SID</TT
> a qual é
     definida se uma sessão é iniciada. Se o cliente não enviou um cookie de sessão apropriado,
     ela tem a forma <TT
CLASS="literal"
>session_name=session_id</TT
>.
     Se não, ela expande para uma string vazia. Assim, você pode coloca-la
     incondicionalmente em URLs.
    </P
><P
>&#13;     O exemplo a seguir mostra como registrar uma variável, e como
     criar um link corretamente para outra pagina usando SID.
     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN203572"
></A
><P
><B
>Exemplo 3. Contando o número de visitas de um unico usuário</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /></font><font color="#007700">if (!</font><font color="#0000BB">session_is_registered</font><font color="#007700">(</font><font color="#DD0000">'count'</font><font color="#007700">)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">session_register</font><font color="#007700">(</font><font color="#DD0000">'count'</font><font color="#007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$count </font><font color="#007700">= </font><font color="#0000BB">1</font><font color="#007700">;<br />} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$count</font><font color="#007700">++;<br />}<br /></font><font color="#0000BB">?&gt;<br /></font><br />&lt;p&gt;<br />Hello visitor, you have seen this page <font color="#0000BB">&lt;?php </font><font color="#007700">echo </font><font color="#0000BB">$count</font><font color="#007700">; </font><font color="#0000BB">?&gt;</font> times.<br />&lt;/p&gt;<br /><br />&lt;p&gt;<br />To continue, &lt;a href="nextpage.php?<font color="#0000BB">&lt;?php </font><font color="#007700">echo </font><font color="#0000BB">strip_tags</font><font color="#007700">(</font><font color="#0000BB">SID</font><font color="#007700">); </font><font color="#0000BB">?&gt;</font>"&gt;click<br />here&lt;/a&gt;.<br />&lt;/p&gt;</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
    </P
><P
>&#13;     A função <A
HREF="function.strip-tags.html"
><B
CLASS="function"
>strip_tags()</B
></A
> é usada ao mostrar o SID 
     para previnir ataques relacionados a XSS.
    </P
><P
>&#13;     Mostrar o SID, como mostrado acima, não é necessário se
     <A
HREF="ref.session.html#ini.session.use-trans-sid"
>&#13;     --enable-trans-sid</A
> foi usado para compilar o PHP.
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
      É assumido para URLs não relativas que apontem para sites externos
      e assim não é adicionado o SID, já que seria um risco de segurança
      vazar o SID para um servidor diferente.
     </P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="session.customhandler"
>Manipuladores de sessões personalizados</A
></H1
><P
>&#13;     Para implementar as sessões em banco de dados, ou qualquer outreo metodo de 
     armazenamento, você precisara usar <A
HREF="function.session-set-save-handler.html"
><B
CLASS="function"
>session_set_save_handler()</B
></A
> 
     para criar um conhunto de funções de armazenamento.
    </P
></DIV
></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Índice</B
></DT
><DT
><A
HREF="function.session-cache-expire.html"
>session_cache_expire</A
>&nbsp;--&nbsp;Retorna o prazo do cache atual</DT
><DT
><A
HREF="function.session-cache-limiter.html"
>session_cache_limiter</A
>&nbsp;--&nbsp;Obtém e/ou define o limitador do cache atual</DT
><DT
><A
HREF="function.session-commit.html"
>session_commit</A
>&nbsp;--&nbsp;Sinônimo de <A
HREF="function.session-write-close.html"
><B
CLASS="function"
>session_write_close()</B
></A
></DT
><DT
><A
HREF="function.session-decode.html"
>session_decode</A
>&nbsp;--&nbsp;Decifra dado de sessão de uma string</DT
><DT
><A
HREF="function.session-destroy.html"
>session_destroy</A
>&nbsp;--&nbsp;Destroi todos os dados registrados em uma sessão</DT
><DT
><A
HREF="function.session-encode.html"
>session_encode</A
>&nbsp;--&nbsp;
     Codifica os dados da sessão atual como uma string
    </DT
><DT
><A
HREF="function.session-get-cookie-params.html"
>session_get_cookie_params</A
>&nbsp;--&nbsp;
     Obtém os parâmetros do cookie da sessão
    </DT
><DT
><A
HREF="function.session-id.html"
>session_id</A
>&nbsp;--&nbsp;Obtém e/ou define o id de sessão atual</DT
><DT
><A
HREF="function.session-is-registered.html"
>session_is_registered</A
>&nbsp;--&nbsp;
     Descobre se uma variável global está registrada numa sessão.
    </DT
><DT
><A
HREF="function.session-module-name.html"
>session_module_name</A
>&nbsp;--&nbsp;Obtém e/ou define o módulo da sessão atual</DT
><DT
><A
HREF="function.session-name.html"
>session_name</A
>&nbsp;--&nbsp;Obtém e/ou define o nome da sessão atual</DT
><DT
><A
HREF="function.session-regenerate-id.html"
>session_regenerate_id</A
>&nbsp;--&nbsp;
     Atualiza o id da seção atual com um novo gerado
    </DT
><DT
><A
HREF="function.session-register.html"
>session_register</A
>&nbsp;--&nbsp;
     Registrar uma ou mais variáveis globais na sessão atual
    </DT
><DT
><A
HREF="function.session-save-path.html"
>session_save_path</A
>&nbsp;--&nbsp;Obtém e/ou define o save path da sessão atual</DT
><DT
><A
HREF="function.session-set-cookie-params.html"
>session_set_cookie_params</A
>&nbsp;--&nbsp;
     Define os parâmetros do cookie de sessão
    </DT
><DT
><A
HREF="function.session-set-save-handler.html"
>session_set_save_handler</A
>&nbsp;--&nbsp;
     Define a sequência de funções de armazenamento 
    </DT
><DT
><A
HREF="function.session-start.html"
>session_start</A
>&nbsp;--&nbsp;Inicia dados de sessão</DT
><DT
><A
HREF="function.session-unregister.html"
>session_unregister</A
>&nbsp;--&nbsp;
     Desregistra uma variável global da sessão atual
    </DT
><DT
><A
HREF="function.session-unset.html"
>session_unset</A
>&nbsp;--&nbsp;
      Libera todas as variáveis de sessão
    </DT
><DT
><A
HREF="function.session-write-close.html"
>session_write_close</A
>&nbsp;--&nbsp;Escreve dados de sessão e termina a sessão</DT
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="function.session-pgsql-status.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Principal</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="function.session-cache-expire.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>session_pgsql_status</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="funcref.html"
ACCESSKEY="U"
>Acima</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>session_cache_expire</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>