sábado, março 14, 2015

Exemplo clássico de sessões :


session_start();

//tem ou não tem visitas ?
if (!isset($_SESSION['visits']))
{
   //certo nao tem entao vamos passar o valor 1 para a variavel de sessão
   $_SESSION['visits'] = 1;
}
else
{
   //já tem então vamos incrementar em um o número de visitas
   $_SESSION['visits']++;
}

//escrevendo ...
echo $_SESSION['visits'];

?>
Sessões

Sessões permitem armazenar informações entre diferentes páginas.

Abaixo exemplo onde basicamente iniciamos, armazenamos e exibimos  dados de uma sessão.


// inicia uma sessão
session_start();

// armazena dados
$_SESSION["username"] = "angelo";
$_SESSION["email"] = "a@gmail.com";

///Exibe dados
echo $_SESSION["username"].' '.$_SESSION["email"];
echo ' '.session_name();

Abaixo deletamos o valor de uma variável de sessão:
session_start();

$_SESSION["usuario"] = "angelo";

echo ' 1 '.$_SESSION["usuario"];

// deleta o valor indexado com o nome usuário
unset($_SESSION["usuario"]);

echo '
2 '.$_SESSION["usuario"];

Abaixo deletamos toda a sessão, bom para scripts de logout :
session_start();

// finaliza a sessão
session_destroy();

Verifica o tempo de sessão e finaliza apos o limite configurado:
session_start();

// configure tempo de expiração (em segundos)
$inativo = 600;

// verifique se $_SESSION["timeout"] esta configurado
if (isset($_SESSION["timeout"])) {

    // calcule o tempo de vida da sessão
    $sessionTTL = time() - $_SESSION["timeout"];
    if ( $sessionTTL > $inativo ) {
        session_destroy();
        header("Location: /logout.php");
    }
}

$_SESSION["timeout"] = time();

Gerando um identificador único ajuda a prevenir ataques pelo número da sessão, session_regenerate_id gera um novo número de sessão único para cada usuário qeu acessa o sistema por exemplo:
session_start();

if ($_POST["username"] == "admin" && $_POST["password"] == sha1("password")) {
    $_SESSION["authorized"] = true;
    session_regenerate_id();
}

Referência do link : http://www.sitepoint.com/php-sessions/