|
| 1 | +# 3.16 Session |
| 2 | + |
| 3 | +Trabalhar com o conceito de sessões permite que um conjunto de dados, possam ser utilizados pelos os usuários durante todo o tempo em que acessa e navega dentro da aplicação web sendo persistidos. Então dessa forma, é possível, por exemplo, verificar se o usuário está logado ou não no site, pegar um conteúdo que está dentro de uma carrinho de compras, ou até controlar permissões de execução do usuário, e muito mais. |
| 4 | + |
| 5 | +- Session é uma variável superglobal, é uma array associativo que basicamente, são estruturas onde cada elemento que esta dentro do array, é identificado por uma chave única. |
| 6 | + |
| 7 | + |
| 8 | +## Vamos criar a nossa primeira sessão: função session_start() |
| 9 | + |
| 10 | +A função session_start() permite iniciar uma nova sessão ou até resumir (continuar) uma sessão que já existe. |
| 11 | + |
| 12 | + |
| 13 | +### Iniciar uma sessão |
| 14 | + |
| 15 | +```php |
| 16 | + |
| 17 | +<?php |
| 18 | + session_start(); //Uma nova sessão de usuário é iniciada. |
| 19 | +?> |
| 20 | + |
| 21 | +``` |
| 22 | + |
| 23 | +O retorno da função |
| 24 | + |
| 25 | +- TRUE sessão iniciada com sucesso. |
| 26 | +- FALSE sessão deu falha em iniciar. |
| 27 | + |
| 28 | +## Exemplo de como trabalhar com sessão |
| 29 | + |
| 30 | +Aqui nesse exemplo vamos trabalhar com duas páginas php. Na primeira página, vamos iniciar uma sessão e em seguida, passar os valores para as duas variáveis de sessão criadas. |
| 31 | + |
| 32 | +### Declarando a sessão - $_SESSION. |
| 33 | + |
| 34 | +```php |
| 35 | + |
| 36 | +<?php |
| 37 | + // Página 1 |
| 38 | + |
| 39 | + session_start(); |
| 40 | + |
| 41 | + // Exibir um texto na tela do usuário |
| 42 | + echo "Esta é a página 01, onde a sessão será criada"; |
| 43 | + |
| 44 | + // Vamos criar uma sessão com o nome da variável aula e hora |
| 45 | + $_SESSION["aula"] = "PHP"; |
| 46 | + $_SESSION["hora"] = time(); |
| 47 | + |
| 48 | + // Link para a página 02: |
| 49 | + echo '<br /><a href="pagina2.php">Clique para ir à página 02</a>'; |
| 50 | + |
| 51 | +?> |
| 52 | + |
| 53 | +``` |
| 54 | + |
| 55 | +Após carregar a página 01, a sessão é criada e as variáveis de sessão ‘aula’ e ‘hora’ são declaradas e inicializadas. Elas poderão ser acessadas na página 02, clicando-se no link fornecido. |
| 56 | + |
| 57 | +A seguir está o código do arquivo pagina2.php: |
| 58 | + |
| 59 | +```php |
| 60 | + |
| 61 | +<?php |
| 62 | +// E esta é a página 02, onde recuperaremos as variáveis de sessão |
| 63 | + |
| 64 | +session_start(); |
| 65 | + |
| 66 | +date_default_timezone_set('America/Sao_Paulo'); |
| 67 | + |
| 68 | +echo 'Agora estamos na página 02<br />'; |
| 69 | +echo "Estamos na aula de " . $_SESSION['aula'] . "<br>"; |
| 70 | + |
| 71 | +echo "E agora são " . date('H:i:s', $_SESSION['hora']) . " horas"; |
| 72 | + |
| 73 | +?> |
| 74 | + |
| 75 | +``` |
| 76 | + |
| 77 | +Neste exemplo, a sessão é criada logo que o usuário carrega a página 01. Porém, é muito comum que se deseje criar uma nova sessão apenas quando algum evento específico ocorrer, como o clique em um botão de formulário. |
0 commit comments