Sessão

Sessão permite que dados sejam armazenados em variáveis que possam ser usadas em múltiplas páginas. Assim, é possível armazenar informações dos perfis dos usuários que podem ser utilizadas em diferentes páginas (e.g. username, hora do login, cor favorita, etc).

Para iniciar uma seção, basta usar a função session_start(). Uma vez iniciada a sessão, é possível adicionar variáveis ao array global $_SESSION. Este array que contém todas as variáveis definidas na sessão de um usuário.

Para exemplificar a utilização da sessão, desenvolveremos um projeto simples para exemplificar uma situação de login em um sistema. Por isso, inicialmente será criada uma página frmLogin.php, que conterá um formulário com campos para que o usuário informe o login e senha, de acordo com trecho de código mostrado a seguir:

<form name="frmLogin" method="POST" action="login.php">
    <input type="text" name="textLogin"> </br>
    <input type="password" name="textSenha" value=""> </br>
    <input type="submit" name="btnLogin" value="Login" >
</form>

O atributo action do formulário tem o valor login.php, que indica que os dados do presentes no formulário serão enviados para a referida página (mais informações sobre o assunto no capítulo sobre Formulários). Na página login.php, coloque o código que segue:

<?php
if ($_POST["textLogin"]=="usuario" && $_POST["textSenha"]=="senhaacesso" ){
    session_start();
    date_default_timezone_set("America/Sao_Paulo");
    $_SESSION["user_name"]= $_POST["textLogin"];
    $_SESSION["login_time"] = date("d-m-Y h:i:sa");
    header("Location: profile.php");
}else{
    header('Location: frmLogin.php?erroLogin=1');
}
?>

No código apresentado anteriormente, inicialmente é realizada uma verificação se os dados de autenticação fornecidos pelo usuário são usuario e senhaacesso. Se sim, a sessão é iniciada e o nome de usuário e a data e hora de acesso são armazenados na sessão. O login de usuário é associado à chave user_name, já a hora de login é associada à chave login_time. Depois o usuário é direcionado para uma nova página, profile.php, através da função header. Caso os dados fornecidos pelo usuário não sejam conforme os esperados, este é direcionado para a página de login (frmLogin.php) passando pela QueryString um parâmetro erroLogin com valor 1. Este parâmetro é importante para podermos verificar a podermos mostrar uma mensagem de erro ao usuário informando que os dados fornecidos estão incorretos.

Na página profile.php os dados previamente definidos na sessão são acessados e mostrados no browser, conforme código apresentado a seguir:

<?php
session_start();

$username = $_SESSION   ["user_name"];
$hora_login = $_SESSION["login_time"];

echo "Hora login:".$hora_login."</br>";
echo "Username: ".$username."</br>";

echo "</br> </br> <a href='frmLogin.php'> Página de Login </a>"
?>

A cada nova página que se deseja acessar ou definir uma variável na sessão, inicialmente é necessário iniciá-la, através da função session_start(). A última linha do código supracitado redireciona o usuário para a página do formulário de login.

O projeto completo para download pode ser baixado aqui.

Para baixar outro projeto exemplo de manipulação de sessão, clique aqui.

results matching ""

    No results matching ""