tutoriais mais recente desenvolvimento web
 

PHP 5 sessões


Uma sessão é uma maneira de armazenar informações (in variables) para ser usado em várias páginas.

Ao contrário de um cookie, a informação não é armazenada no computador do usuário.


O que é uma sessão PHP?

Quando você trabalha com um aplicativo, você abri-lo, fazer algumas alterações, e depois fechá-lo. Isto é muito parecido com um Session. O computador sabe quem você é. Ele sabe quando você iniciar 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 manter o estado.

As variáveis de sessão resolver este problema armazenando informações de usuário para ser usado em várias páginas (eg username, favorite color, etc) . Por padrão, as variáveis ​​de sessão durar até que o usuário fecha o browser.

Assim; As variáveis ​​de sessão armazenar informações sobre um único usuário, e estão disponíveis para todas as páginas em um único aplicativo.

Dica: Se você precisa de um armazenamento permanente, você pode querer armazenar os dados em um banco de dados .


Iniciar uma sessão PHP

A sessão é iniciada com o session_start() função.

As variáveis ​​de sessão são definidos com a variável global PHP: $ _SESSION.

Agora, vamos criar uma nova página chamada "demo_session1.php" . Nesta página, vamos iniciar uma nova sessão PHP e definir 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>
Exemplo executar »

Note: O session_start() função deve ser a primeira coisa em seu documento. Antes de qualquer tags HTML.


Obter Sessão PHP Valores de Variáveis

Em seguida, criamos outra página chamada "demo_session2.php" . A partir desta página, vamos acessar as informações da sessão que estabelecemos na primeira página ("demo_session1.php") .

Observe que sessão de variáveis não são passados individualmente para cada nova página, ao invés disso eles são recuperados a partir da sessão que abrir 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 no $ _SESSION variável global:

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>
Exemplo executar »

Outra forma de mostrar todos os valores de 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>
Exemplo executar »

Como funciona? Como ele sabe que sou eu?

A maioria das sessões definir uma chave de usuário no computador do usuário que é algo como isto: 765487cf34ert8dede5a562e4f3a7e12. Então, quando uma sessão é aberta em outra página, ele verifica o computador para uma chave de usuário. Se houver uma correspondência, ele acessa a sessão, se não, ele inicia uma nova sessão.


Modificar uma variável de sessão PHP

Para alterar uma variável de sessão, apenas substituí-lo:

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>
Exemplo executar »

Destruir uma sessão PHP

Para remover todas as variáveis de sessão globais e destruir a sessão, o uso 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>
Exemplo executar »