-
PHP - Fundamentos Básicos
-
Lecture 1PHP – Tutorial
-
Lecture 2PHP – Introdução
-
Lecture 3PHP – Configuração de Ambiente
-
Lecture 4PHP – Visão geral da sintaxe
-
Lecture 5PHP – Tipos de Variáveis
-
Lecture 6PHP – Tipos de Constantes
-
Lecture 7PHP – Tipos de Operadores
-
Lecture 8PHP – Tomada de Decisão
-
Lecture 9PHP – Tipos de Loop
-
Lecture 10PHP – Arrays
-
Lecture 11PHP – Strings
-
Lecture 12PHP – Conceitos Web
-
Lecture 13PHP – Métodos GET e POST
-
Lecture 14PHP – Inclusão de Arquivo
-
Lecture 15PHP – Arquivos e I/O
-
Lecture 16PHP – Funções
-
Lecture 17PHP – Cookies
-
Lecture 18PHP – Sessions
-
Lecture 19PHP – Enviando e-mails usando PHP
-
Lecture 20PHP – upload de arquivo
-
Lecture 21PHP – Padrão de Codificação
-
PHP – Sessions
Uma maneira alternativa de tornar os dados acessíveis em várias páginas de um site inteiro é usar uma sessão PHP.
Uma sessão cria um arquivo em um diretório temporário no servidor onde as variáveis de sessão registradas e seus valores são armazenados. Esses dados estarão disponíveis para todas as páginas do site durante essa visita.
A localização do arquivo temporário é determinada por uma configuração no arquivo php.ini chamada session.save_path. Antes de usar qualquer variável de sessão, certifique-se de configurar este caminho.
Quando uma sessão é iniciada após as coisas acontecem:
- O PHP primeiro cria um identificador único para aquela sessão particular que é uma string aleatória de 32 números hexadecimais como 3c7foj34c3jj973hjkop2fc937e3443.
- Um cookie chamado PHPSESSID é enviado automaticamente ao computador do usuário para armazenar a string de identificação de sessão exclusiva.
- Um arquivo é criado automaticamente no servidor no diretório temporário designado e leva o nome do identificador exclusivo prefixado por sess_ ie sess_3c7foj34c3jj973hjkop2fc937e3443.
Quando um script PHP deseja recuperar o valor de uma variável de sessão, o PHP automaticamente obtém a string identificadora de sessão única do cookie PHPSESSID e então procura em seu diretório temporário o arquivo com esse nome e uma validação pode ser feita comparando os dois valores.
Uma sessão termina quando o usuário perde o navegador ou depois de sair do site, o servidor encerrará a sessão após um período de tempo predeterminado, geralmente de 30 minutos de duração.
Iniciando uma Sessão PHP
Uma sessão de PHP é facilmente iniciada fazendo uma chamada para a função session_start (). Esta função primeiro verifica se uma sessão já foi iniciada e se nenhuma foi iniciada, então ela inicia uma. Recomenda-se colocar a chamada para session_start () no início da página.
Variáveis de sessão são armazenadas em uma matriz associativa chamada $ _SESSION []. Essas variáveis podem ser acessadas durante o tempo de vida de uma sessão.
O exemplo a seguir inicia uma sessão e registra uma variável chamada contador que é incrementada cada vez que a página é visitada durante a sessão.
Use a função isset () para verificar se a variável de sessão já está definida ou não.
Coloque este código em um arquivo test.php e carregue este arquivo várias vezes para ver o resultado:
<?php session_start(); if( isset( $_SESSION['counter'] ) ) { $_SESSION['counter'] += 1; }else { $_SESSION['counter'] = 1; } $msg = "You have visited this page ". $_SESSION['counter']; $msg .= "in this session."; ?> <html> <head> <title>Setting up a PHP session</title> </head> <body> <?php echo ( $msg ); ?> </body> </html>
Destruindo uma Sessão PHP
Uma sessão PHP pode ser destruída pela função session_destroy (). Esta função não precisa de nenhum argumento e uma única chamada pode destruir todas as variáveis de sessão. Se você quiser destruir uma única variável de sessão, você pode usar a função unset () para remover a definição de uma variável de sessão.
Aqui está o exemplo para remover a definição de uma única variável:
<?php unset($_SESSION['counter']); ?>
Aqui está a chamada que irá destruir todas as variáveis de sessão.
<?php session_destroy(); ?>
Ativando Sessão Automática
Você não precisa chamar a função start_session () para iniciar uma sessão quando um usuário visita seu site se você pode definir a variável session.auto_start para 1 no arquivo php.ini.
Sessões sem cookies
Pode haver um caso em que um usuário não permita o armazenamento de cookies em sua máquina. Portanto, há outro método para enviar o ID da sessão ao navegador.
Como alternativa, você pode usar o SID constante que é definido se a sessão foi iniciada. Se o cliente não enviou um cookie de sessão apropriado, ele tem o formato session_name = session_id. Caso contrário, ele se expande para uma string vazia. Assim, você pode incorporá-lo incondicionalmente em URLs.
O exemplo a seguir demonstra como registrar uma variável e como vincular corretamente a outra página usando SID.
<?php session_start(); if (isset($_SESSION['counter'])) { $_SESSION['counter'] = 1; }else { $_SESSION['counter']++; } $msg = "You have visited this page ". $_SESSION['counter']; $msg .= "in this session."; echo ( $msg ); ?> <p> To continue click following link <br /> <a href = "nextpage.php?<?php echo htmlspecialchars(SID); ?>"> </p>
O htmlspecialchars () pode ser usado ao imprimir o SID para prevenir ataques relacionados ao XSS.