PHP 5.6.29 Released

Introdução

O suporte a sessões no PHP consiste em uma maneira de preservar certos dados atráves dos acessos subsequentes.

Um visitante acessando o seu web site ganha um identificador único, o assim chamado id de sessão. Ele é salvo em um cookie do lado do usuário ou propagado via URL.

O suporte à sessão permite armazenar dados entre as requisições no array super global $_SESSION. Quando um visitante acessar seu site, o PHP vai conferir automaticamente (se session.auto_start estiver definido como 1) ou quando você pedir (explicitamente atráves de session_start()) se um id de sessão específico foi enviado com a requisição. Se este for o caso, o ambiente anteriormente salvo é recriado.

Cuidado

Se você ativar session.auto_start, então a única maneira de colocar objetos em suas sessões é carregando a definição da classe usando auto_prepend_file, onde você pode carregar a definição da classe, caso contrário você terá que usar serialize() no objeto, e unserialize() nele depois.

$_SESSION (e todas as variávels registradas) são serializadas internamente pelo PHP usando o manipulador de serialização especificado pela configuração INI session.serialize_handler depois que a requisição terminar. Variáveis registradas que estejam indefinidas são marcadas como não definidas. Nos acessos subsequentes, elas não são definidas pelo módulo da sessão, a menos que o usuário as definam posteriormente.

Aviso

Porque as variáveis de sessão são serializadas, variáveis resource não podem ser armazenadas em sessão.

Manipuladores de serialização (php e php_binary) herdam as limitações de register_globals. Portanto, índices numéricos ou strings contendo caracteres especiais (| e !) não podem ser usados. Se usados, resultará em erros na finalização do script. php_serialize não possui tais limitações. php_serialize está disponível a partir do PHP 5.5.4.

Nota:

Por favor, note que ao trabalhar com sessões, um registro na sessão não é criado até que a variável seja registrada usando a função session_register() ou pela adição de uma nova chave ao array super global $_SESSION. Isto continua valendo mesmo se uma sessão foi iniciada usando a função session_start().

Nota:

O PHP 5.2.2 introduziu uma funcionalidade não documentada para armazenar os arquivos de sessão em "/tmp" mesmo que open_basedir estivesse habilitado e "/tmp" não fosse adicionado explicitamente na lista de caminhos permitidos. Esta funcionalidade foi removida a partir do PHP 5.3.0.

add a note add a note

User Contributed Notes 2 notes

up
19
ryan dot jentzsch at gmail dot com
1 year ago
One thing that should be understood is that if you are creating a RESTfull service using sessions is by nature NOT a RESTfull process.
up
-137
payal at radixweb dot com
6 years ago
If you use auto start session, Session cookie will not be created , it will be created only if you will use session_start()
To Top