3304 registros
0 hoje
9 nesta semana
41 neste mês![]() | 73% | Brasil (47547) |
![]() | 5% | Portugal (3071) |
![]() | 3% | EUA (2135) |
![]() | 0% | Rússia (259) |
![]() | 0% | Holanda (239) |
| Hoje: | 153 |
| Ontem: | 2587 |
| No mês: | 39330 |
| Mês passado: | 25815 |
| Total: | 65145 |
| Recorde: | 3037 |
| No dia: | 04.03.10 |
| Leituras hoje: | 19405 |
| Leituras Total: | 280957 |
| Bots hoje: | 89 |
| Dados desde: | 16.02.2010 |
|
Seg 13 Ago 2007 22:00 |
|
Página 1 de 2
SessionAs funções para manipulação de sessões oferecidas pelo PHP permitem preservar dados ao longo de acessos subsequentes. Cada visitante que acessar seu site recebe uma identificação única chamada de ID de sessão. Esta ID pode ser armazenada num cookie na máquina do usuário ou ser propagada através da URL. Uma vez criada, a sessão pode registrar variáveis que ficarão disponíveis no array $_SESSION, de escopo global, enquanto você não encerrar compulsoriamente a sessão ou se o tempo de vida da mesma não tiver se esgotado. Para "pilotar" sessões o PHP disponibiliza um arsenal de funções fáceis de serem aplicadas quando se entende o princípio do mecanismo SESSION. Funções da SESSION
Iniciando uma sessãoPode-se usar tanto a função session_start quanto a função session_register para iniciar uma sessão. A função session_register, por padrão, chama a função session_start para verificar se já há ou não uma sessão aberta: se não houver, uma nova sessão é inicializada; se houver, o trabalho continua na sessão que já está inicializada. <?php // Inicializar a sessão session_start(); // Registrar variáveis if (!session_is_registered("conta")) { $conta = 1; $inicio = time(); session_register("conta"); session_register("inicio"); } else { $_SESSION["conta"] = $_SESSION["conta"] + 1; } ?> <html> <head><title>Sessões</title></head> <body> <p>contador = <?php echo $_SESSION["conta"]; ?></p> <p>Esta sessão já está durando <?php echo time() - $inicio; ?> segundos.</p> </body> </html> ?> Quando um usuário acessar esta página pela primeira vez, a instrução session_start inicializa uma nova sessão porque, para este usuário, ainda não existe uma sessão definida; se um usuário que já possui uma sessão acessar novamente esta página, então a sessão é apenas reativada. Logo em seguida são definidas as variáveis $conta e $inicio. A variável $conta recebe o valor inicial 1 e a variável $início guarda a data e a hora do primeiro acesso. Estas são registradas na sessão usando a função session_register. Novos valores para variáveis da sessão podem ser registrados através da função session_register ou diretamente no array da sessão. Observe que o valor da variável "conta" é atualizado usando o segundo método (linha 13). Para acessar um dos elementos do array, utiliza-se o nome do mesmo ($_SESSION, que precisa ser escrito com letras maiúsculas!) com o nome do elemento entre aspas e entre colchetes (e não entre parênteses!). Verificando a sua sessãoQuando você acessou esta página pela primeira vez, você abriu uma sessão só para você. O resultado é o seguinte:
Se você recarregar esta página, o contador vai mostrar um acesso adicional e um tempo maior de duração da sua sessão. Experimente! O pulo do gatoMas qual é a vantagem de ciscar valores de variáveis de uma sessão para usá-los na mesma página? Eu diria que a vantagem é pouca ou quase zero. Acontece que, mesmo que o usuário que abriu a sessão troque de página, a sessão não é extinta, ou seja, as variáveis registradas continuam à nossa disposição. Melhor do que isto, não é preciso colocar estas variáveis e seus valores em campos escondidos (hidden) de formulários ou como parâmetros no endereço de links para transferi-las para outras páginas - as variáveis e seus valores ficam na retaguarda, gerenciadas pelo PHP, prontas para serem usadas quando for conveniente. Como ciscar os valores? Ficando no exemplo dado, basta adicionar um <?php echo $_SESSION["conta"]; ?> ou <?php echo time() - $_SESSION["inicio"]; ?> em qualquer ponto de qualquer outra página para obter os valores desejados. É aí que está o pulo do gato
|
||||
| Última atualização ( Qui, 12.03.2009 21:52 ) |