PHP 7.1.0 Release Candidate 3 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 3 notes

up
16
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
-69
harshitcode25 at gmail dot com
2 years ago
PHP Session Variables
When you are working with an application, you open it, do some changes and then you close it. This is much like a Session. The computer knows who you are. It knows when you start the application and when you end. But on the internet there is one problem: the web server does not know who you are and what you do because the HTTP address doesn't maintain state.

A PHP session solves this problem by allowing you to store user information on the server for later use (i.e. username, shopping items, etc). However, session information is temporary and will be deleted after the user has left the website. If you need a permanent storage you may want to store the data in a database.

Sessions work by creating a unique id (UID) for each visitor and store variables based on this UID. The UID is either stored in a cookie or is propagated in the URL.
up
-125
payal at radixweb dot com
5 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