programação web - pucsp.brjarakaki/progweb/pweb-php-03-cookie-sessao.pdf · programação web...

24
@wre2008 1 Programação web Prof. Wladimir Linguagem PHP – Cookie e Sessão

Upload: hathuy

Post on 11-Nov-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

@wre2008 1

Programação webProf. Wladimir

Linguagem PHP – Cookie e Sessão

@wre2008 2

SumárioHeader;Cookie;Sessão;Exemplos.

@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 19

SessãoExemplo: Criar um sistema de login e senha.

@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.