Trabalhando com variáveis de sessões no PHP

Chamá-se variáveis de sessões aquelas que guardam valores enquanto o navegador do usuário estiver aberto. Ao encerrar o navegador estas variáveis são perdidas. O interessante destas sessões é que elas podem ser acessadas por qualquer página de sua aplicação PHP.

Usamos sessões principalmente para realizar autenticações de acesso em telas de login, onde o usuário devidamente autenticado recebe uma sessão para o acesso à um determinado recurso do sistema. Bem como, podemos utilizar as sessões para personalizar ações do visitante, por exemplo, um carrinho de compras de um e-commerce pode ser programado usando sessões para guardar os itens adicionados pelo visitante, isso reduz o uso do banco de dados e torna a aplicação mais ágil.

Sintaxe

Sempre que necessitamos de uma variável de sessão definir o inicio da sessão logo no início do código da página com a função session_start();

<?php
     session_start();
?>

Agora todos os valores que queremos guardar devem ser declarados dentro de um super arrays $_SESSION, exemplo;

<?php
     session_start();
     $_SESSION['nome'] = "Anderson";
?>

Exemplo de uso.

Neste exemplo, vamos usar a tela de identificação de um chat para que o usuário possa se identificar e ter seu nickname registrado em uma sessão. Dessa forma, o chat sempre saberá quem está logado.

Considere o seguinte formulário:

session_em_php

O nome do input text é nick e o input color é cor. Se quisermos gravar os valores destes campos em uma sessão, faríamos da seguinte forma;

<?php
	session_start();
	
	if ($_POST) //se o botão de submit for clicado
	{		
		$_SESSION['nick'] = $_POST['nick'];
		$_SESSION['cor']  = $_POST['cor'];
	}
?>

<!DOCTYPE html>
<html>
<head>
  <title>SuperChat</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
</head>
<body style="font-family:Open Sans;">

	<div class="container">
	
	<br>
	<div class="well" align="center"><h1><strong>Super Chat <strong>UOW</strong></h1></div>
	
	<form method="post">
	<div class="panel panel-success">
	<div class="panel-heading">Digite seu nick</div>
	<div class="panel-body">
		<div class="col-md-4"></div>
		<div class="col-md-4">
			<input type="text" name="nick" class="form-control" size="10" required>	<br/>
			
			Escolha um cor:
			<input type="color" name="cor">
			
			<br><br>
			
			<div align="center">
				<button type="submit" class="btn btn-success"> Entrar <span class="glyphicon glyphicon-log-in"></span> </button>
			</div>	
		</div>
		<div class="col-md-4"></div>
	</div>
	</div>
	</form>
	</div>
</body>
</html>

Para ler os valores da sessão, basta executar a função echo(). Neste vamos exemplo vamos criar a página chat.php que irá ler os valores da sessão;

<?php
   session_start();
   echo $_SESSION['nick'] . "<br>";
   echo $_SESSION['cor'];
?>

Destruindo a sessão

Uma ação de loggoff pode ser realizada destruindo os valores armazenados na sessão. Para isso, crie um arquivo sair.php com os seguintes comandos;

<?php
	session_start();

	// Apaga todas as variáveis da sessão
	$_SESSION = array();

	// Finalmente, destrói a sessão
	session_destroy();	
?>

Deixe seu comentário