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.
Um visitante acessando o seu web site ganha um identificador único, o assim chamado id de sessão. Este é salvo em um cookie do lado do usuário ou propagado via URL.
O suporte a sessão permite a você registrar um número arbritrário de variáveis que serão preservadas entre as requisições. Quando um visitante acessar o seu site, o PHP irá conferir automaticamente (se session.auto_start estiver definido como 1) ou quando você pedir (explicitamente atráves de session_start() ou implicitamente através de session_register()) quando um id de sessão específico for enviado com a requisição. Se este for o caso, o ambiente anteriormente salvo é recriado.
Se você ativar session.auto_start 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.
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 módulo da sessão a menos que o usuário defina elas posteriormente.
Alguns tipos de dados não podem ser serializados e assim guardados em sessões. Isso inclui variáveis de resource(recursos) ou objetos com referências circulares (ex. objetos que passam uma referência de si mesmo para outro objeto).
Nota:
A manipulação de sessões foi adicionada no PHP 4.0.0.
Nota:
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 session_register() ou pela adição de uma nova chave a array superglobal $_SESSION. Isto é verdadeiro não importando se uma sessão foi iniciada usando a função session_start().