Guia Abrangente Para Sessões PHP

PHP Sessions é um mecanismo usado para armazenar e compartilhar dados entre várias páginas de um site. Ele permite que você mantenha informações de estado em várias solicitações de um navegador.

Quando um visitante navega por diferentes páginas em um site, cada uma contém seu próprio conjunto de dados.

Por exemplo, credenciais de login ou o conteúdo de um carrinho de compras. As sessões permitem que os aplicativos da web armazenem e recuperem esses dados.

Quando uma sessão PHP é iniciada, os dados são armazenados no servidor e atribuídos a um identificador de sessão exclusivo (SID) para que solicitações posteriores do mesmo usuário possam identificar os dados da sessão.

Os dados podem ser armazenados em sessões de curto e longo prazo, e essas sessões podem ser configuradas para expirar automaticamente em um determinado momento ou quando o usuário fizer logout ou quando a sessão for encerrada.

Ao longo do artigo, brincaremos com os fundamentos do trabalho com sessões PHP para aprendermos como criar e destruir sessões, como armazenar e recuperar dados de sessão, bem como definir configurações de sessão para desempenho e segurança ideais.



O que são sessões PHP?

Você trabalha com um aplicativo abrindo-o, fazendo algumas alterações e fechando-o quando terminar. Essencialmente, isso será o mesmo que uma sessão. Os computadores o reconhecem.

Ele sabe quando você está iniciando e quando está encerrando o aplicativo quando o estiver usando. Porém, há um problema com a internet, e é este: como os endereços HTTP não são mantidos, os servidores web não sabem quem você é nem o que você faz.

A solução para esse problema é armazenar as informações do usuário (por exemplo , nome de usuário , cor favorita etc.) em um elemento chamado variável de sessão para que possa ser usado em várias páginas. Por padrão, as variáveis ​​de sessão duram até que o navegador seja fechado pelo usuário.

Como resultado, as variáveis ​​de sessão são usadas para armazenar informações sobre um único usuário e podem ser acessadas por todas as páginas do mesmo aplicativo.

Lembre-se : Bancos de dados são bons para armazenar dados permanentemente.

PHP Session_start()

Usando a função session_start() , você pode iniciar uma sessão.

$_SESSION é a variável global PHP que define as variáveis ​​de sessão para a sessão PHP atual.

A próxima coisa que precisamos fazer é criar uma nova página chamada sessions1.php . Estaremos iniciando nossa primeira sessão PHP nesta página, bem como definindo algumas variáveis ​​de sessão da seguinte forma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["fname"] = "Bill";
$_SESSION["lname"] = "Gates";
echo "Variables are set";
?>
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembre-se : você deve certificar-se de que a função session_start() seja a primeira coisa em seu documento. Se não for, seu documento falhará. Ele deve ser colocado antes que quaisquer tags HTML sejam adicionadas.

Valores das Variáveis ​​de Sessão do PHP

O próximo passo é criar outra página com o nome session2.php . Através desta página, poderemos acessar as informações sobre a sessão que havíamos definido na primeira página ( session1.php ).

Cada nova página recupera as variáveis ​​de sessão da sessão que abrimos no início (session_start()) em vez de passá-las individualmente.

Há também várias variáveis ​​de sessão que são armazenadas na variável global $_SESSION , que se parece com isto:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
session_start();
?>
<!DOCTYPE html><html>
<body>
<?php
// Echo session variables that were set on previous page
echo "First name is " . $_SESSION["fname"] . "<br>";
echo "Last name is " . $_SESSION["lname"] . "";
?>
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Como alternativa, você pode executar o seguinte código para mostrar todos os valores de variável de sessão para uma sessão de usuário específica:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

O que isso faz? Como ele sabe que sou eu?

Na maioria dos computadores, o usuário receberá uma chave de usuário que se parecerá com esta em seu computador: 756487cf34ert8dede5a562e4f3a7e12. Então, quando uma sessão é aberta em uma página diferente, ele verifica o computador em busca de uma chave de usuário ao abrir essa sessão.

Uma sessão será acessada se houver correspondência, se não houver correspondência, uma nova sessão será iniciada.


Modificar variável de sessão do PHP

Uma variável de sessão pode ser alterada simplesmente substituindo- a pelo novo valor:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// to change a session variable, just overwrite it
$_SESSION["fname"] = "Melinda";
print_r($_SESSION);
?>
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

PHP Session_destroy ()

Quando você deseja remover todas as variáveis ​​de sessão globais de uma sessão e destruí-la, você pode usar session_unset() e session_destroy() :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
echo "Session remove and destroyed"
?>
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone