Sessões PHP
Uma sessão é uma maneira de armazenar informações (em variáveis) para serem usadas em várias páginas.
Ao contrário de um cookie, as informações não são armazenadas no computador do usuário.
O que é uma Sessão PHP?
Quando você trabalha com um aplicativo, você o abre, faz algumas alterações e depois o fecha. Isso é muito parecido com uma Sessão. O computador sabe quem você é. Ele sabe quando você inicia o aplicativo e quando você termina. Mas na internet há um problema: o servidor web não sabe quem você é ou o que você faz, porque o endereço HTTP não mantém o estado.
As variáveis de sessão resolvem esse problema armazenando informações do usuário para serem usadas em várias páginas (por exemplo, nome de usuário, cor favorita etc.). Por padrão, as variáveis de sessão duram até que o usuário feche o navegador.
Assim; As variáveis de sessão contêm informações sobre um único usuário e estão disponíveis para todas as páginas em um aplicativo.
Dica: Se você precisar de um armazenamento permanente, talvez queira armazenar os dados em um banco de dados .
Iniciar uma sessão PHP
Uma sessão é iniciada com a session_start()
função.
As variáveis de sessão são definidas com a variável global do PHP: $_SESSION.
Agora, vamos criar uma nova página chamada "demo_session1.php". Nesta página, iniciamos uma nova sessão PHP e definimos algumas variáveis de sessão:
Exemplo
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
Nota: Asession_start()
função deve ser a primeira coisa em seu documento. Antes de qualquer tag HTML.
Obter valores de variáveis de sessão PHP
Em seguida, criamos outra página chamada "demo_session2.php". A partir desta página, acessaremos as informações da sessão que definimos na primeira página ("demo_session1.php").
Observe que as variáveis de sessão não são passadas individualmente para cada nova página, mas sim recuperadas da sessão que abrimos no início de cada página ( session_start()
).
Observe também que todos os valores das variáveis de sessão são armazenados na variável global $_SESSION:
Exemplo
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
Outra maneira de mostrar todos os valores das variáveis de sessão para uma sessão de usuário é executar o seguinte código:
Exemplo
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
Como funciona? Como ele sabe que sou eu?
A maioria das sessões define uma chave de usuário no computador do usuário que se parece com isso: 765487cf34ert8dede5a562e4f3a7e12. Então, quando uma sessão é aberta em outra página, ela verifica o computador em busca de uma chave de usuário. Se houver correspondência, ele acessa essa sessão, caso contrário, inicia uma nova sessão.
Modificar uma variável de sessão PHP
Para alterar uma variável de sessão, basta sobrescrevê-la:
Exemplo
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
Destruir uma sessão PHP
Para remover todas as variáveis de sessão globais e destruir a sessão, use session_unset()
e session_destroy()
:
Exemplo
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
</body>
</html>