programação web - pucsp.brjarakaki/progweb/pweb-php-03-cookie-sessao.pdf · programação web...
TRANSCRIPT
@wre2008 3
HeaderEsta função permite que um script phpredirecione para outra página.
A sintaxe é:header("Location: endereço");
Obs: Não deve ser utilizado em conjunto com um comando de imprimir na tela. Ex: echo.
@wre2008 4
<html> <head> <title>Header</title> </head><body><form action="#" method="get">
<table border=0><tr><td>* Usuário: </td><td><input type=“text“ name=“usuario“ value=“<?php echo
$user;?>“> </td></tr><tr><td colspan="2"><center><input type="submit"
name="enviar" value="Redirecionar"></center></td></tr></table>
</form></body>
</html>
@wre2008 5
<?php$botao = $_GET["enviar"];
if ($botao != ""){
$usuario = $_GET["usuario"];header("Location: header2.php?usuario=$usuario");
} else{echo "clique no botão para ser direcionado !!";
}?>
@wre2008 6
<?php$usuario = $_GET["usuario"];?><html>
<head> <title>Header 2</title></head>
<body>Você foi redirecionado <?php echo $usuario; ?>!!
<br>Clique em <a href="javascript:history.go(-1)"> voltar
</a></body></html>
@wre2008 7
CookieO que são cookies ?
São variáveis gravadas pelo browser do usuário.Em que os cookies são úteis ?
Quando se quer armazenar informações que serão utilizadas nas outras páginas do site.Quando se quer mostrar áreas restritas do site para determinados usuários.
Como funciona ?É possível gravar o login e senha de um usuário e recuperar de acordo com um tempo especificado.Obs – caso o tempo não seja especificado o cookie irá durar até o fim da aplicação.
@wre2008 8
CookieA função para gravar cookies é a setcookie(), cuja sintaxe é a seguinte:
setcookie(string_nome,string_valor,tempo);
Exemplo:setcookie("senha",$senha); // este cookie expira no momento do fechamento do browser.
setcookie("usuario",$senha,time()+3600); // Este cookie expira em 1 hora
@wre2008 9
CookieRecuperando Cookies: Os cookies gravados pelo script PHP ficam armazenados no array$HTTP_COOKIE_VARS[], cujo índice é a string nome especificada na função setcookie.
Para recuperar um cookie proceda da seguinte maneira:
echo $HTTP_COOKIE_VARS["usuario"];
@wre2008 10
<html><head>
<title>Cookie funcionando</title></head>
<body><?phpif ($_COOKIE ["usuario"] != ""){
echo "Usuario ".$_COOKIE["usuario"]." logado !!"; } else {
echo "Usuario não logado.";}?>
</body></html>
@wre2008 11
<html><head><title>Cookie</title></head><body>
<form action="#" method="get"><table border=0><tr>
<td>* Usuário: </td><td><input type="text" name="usr_usr" value="<?php echo $user;
?>"></td></tr><tr>
<td>* Senha:</td><td> <input type="password" name="senha_usr"></td>
</tr><tr><td colspan="2"><center><input type="submit" name="enviar"
value="Enviar"></center></td></tr>
</table></form>
</body></html>
@wre2008 12
<?php$user = $_GET["usr_usr"];$senha = $_GET["senha_usr"];$botao = $_GET["enviar"];setcookie("usuario",$user,time()+3600);setcookie("senha_usuario",$senha,time()+3600);
if ($botao != ""){
if (($user != "") && ($senha != "")){
header("Location: cookie2.php");} else{
echo "Usuário e senha não podem estar em branco!";}
}?>
@wre2008 13
CookieOs cookies não são aceitos pela totalidade de usuários e nem por todos navegadores.Em alguma aplicações é necessário a reutilização de certas variáveis em uma mesma sessão.
@wre2008 14
SessãoAs vaiáveis de sessão se diferenciam das variáveis clássicas em que estas residem no servidor, são específicas de um sóusuário definido por um identificador e que podem ser utilizadas na globalidade das páginas do site.
@wre2008 15
SessãoPara iniciar uma sessão podemos fazê-lo de duas maneira diferentes:
Declaramos a abertura da sessão através da função session_start(). Declaramos uma variável de sessão por meio da função session_register('variavel').
As sessões devem ser iniciadas no início do nosso script. Antes de abrir qualquer etiqueta ou de imprimir seja o que for. Em caso contrário obteremos um erro.
@wre2008 16
SessãoUma vez criada, a sessão pode registrar variáveis que ficarão disponíveis no array$_SESSION.
@wre2008 17
Sessãosession_start() cria uma sessão (ou resume a sessão atual baseada numa id de sessão sendo passada via uma variável GET ou um cookie).session_destroy() destrói todos os dados associados com a sessão atual.session_id() é usado para obter ou definir o id de sessão para a sessão atual.
@wre2008 18
Sessãosession_register() registra a variável global com o nome na sessão atual.session_is_registered(string $nome)retorna TRUE se há uma variável global com o nome nome registrada na sessão atual.Os comandos acima estão ultrapassados !$_SESSION[‘nome'] = ‘valor';$_SESSION[‘nome2'] = ‘valor2';
@wre2008 20
<html><head><title>Formulario</title></head><body><form action=“valida.php" method="get">
<table border=0><tr><td>* Usuário: </td><td><input type="text" name="usr_usr" value="<?php
echo $user; ?>"></td></tr><tr><td>* Senha:</td><td> <input type="password"name="senha_usr"></td>
</tr><tr><td colspan="2"><center><input type="submit"
name="enviar" value="Enviar"></center></td></tr></table></form>
</body> </html>
login.php
@wre2008 21
<?php$user = $_GET["usr_usr"];$senha = $_GET["senha_usr"];$botao = $_GET["enviar"];
if ($botao != ""){
if (($user != "") && ($senha != "")){
session_start();$_SESSION["user"] = $user;$_SESSION["senha"] = $senha;session_name("usuario");header("Location:logado.php");
}}?>
valida.php
@wre2008 22
<?phpsession_start();if (($_SESSION["user"] != "") && ($_SESSION["senha"] != "")){?><html>
<head><title>Formulario</title></head><body>
Bem vindo ao site Sr. <?php echo $_SESSION["user"]; ?><br>Clique <a href="logout.php">aqui</a> para fazer logout.
</body></html><?php} else {
header("Location:login.php");}?>
logado.php
@wre2008 23
<?phpsession_start();
echo "Clique <a href=login.php>aqui</a> para voltar";
session_destroy();?>
logout.php
@wre2008 24
Trabalho da semanaCriar um site que apresente 3 páginas, sendo duas páginas internas e uma index.As páginas internas o usuário só poderáacessar se estiver logado no site principal com o login igual a aluno e senha igual a redes.Obs- O usuário poderá fazer o logout em qualquer uma das duas páginas internas.Caso o usuário tentar acessar as páginas internas o sistema deve redirecionar para a página principal.