php12

51
WAMP Aula 12 – PHP Sistema de Autenticação de Usuários Windows, Apache, MySQL e PHP

Upload: cris2002

Post on 25-May-2015

513 views

Category:

Technology


1 download

DESCRIPTION

CURSO PHP

TRANSCRIPT

Page 1: Php12

WAMP

Aula 12 – PHP

Sistema de Autenticação de

Usuários

Windows, Apache, MySQL e PHP

Page 2: Php12

Nessa Aula Veremos

� PHP com Banco de Dados MySQL� Conhecendo e o PHPMyAdmin� Conectando com um Banco de Dados.� Executando consultas MySql em um programa

PHP.� Exibindo resultados dos comandos MySQL.� Criando um Sistema de Autenticação usando

cookies e sessões.

Page 3: Php12

PHP e Banco de Dados

� O PHP possui funções que trabalham com diretamente com o PostgreSQL, MySql e outras com SQLite.

� Nosso foco será no MySql.

Page 4: Php12

PHPMyAdmin

� phpMyAdmin é um programa desenvolvido em PHP para administração do MySQL pela Internet.

� A partir deste sistema é possível:� criar e remover bases de dados, � criar, remover e alterar tabelas, � inserir, remover e editar campos, � executar códigos SQL e � manipular campos chaves.

Page 5: Php12

Junto com o Easyphp

� Para acessá-lo basta digita no navegador:

Page 6: Php12

Criando um Banco de Dados

� Vamos Criar um Controle de Acesso ao Banco de Dados. – Usaremos o PHPMyAdmin� 1) Inicialmente Criaremos um Banco Chamado escola.

� 2) Depois criaremos a tabela chamada usuarios. “sem acento” (Cadastro de Usuários).

� 3) Criaremos os campos: � nome, login e senha.

� 4) Adionaremos dados

� A idéia depois é criar um sistema de Login ao sistema em php.

Page 7: Php12

Criando o Banco de Dados

usuarios

nomeloginsenha

tabela

Tabela n

Banco: escola

Page 8: Php12

Passo a Passo 1

� Clique em Banco de Dados.

Page 9: Php12

Passo a Passo 2

� Dê o nome escola e clique em Cria.

Page 10: Php12

Passo a Passo 3

� Selecione o novo Banco no menu a Esquerda

Page 11: Php12

Passo a Passo 4

� Digite o nome da tabela usuario e o número de campos: 3.

Page 12: Php12

Passo a Passo 5

� Defina os campos e Execute e salve

Page 13: Php12

Passo a Passo 6

� Cadastrando usuários: Clique na tabela a esquerda no menu. E depois na opção inserir.

1

2

Page 14: Php12

Passo a Passo 7

Cadastre pelo menos mais UM

Page 15: Php12

Voltando ao PHP

Criando Sistema de Login

Page 16: Php12

Arquivo de conexão:

conecta_mysql.inc

� 1) Crie uma subpasta em www chamada login. Salve os próximos arquivos nessa pasta.

Page 17: Php12

Tela de Login – arquivo:

login.html

txtUsuario

txtSenha

<form method="POST" action="login.php">

Page 18: Php12

Arquivo Login.php

� Esse arquivo:� 1º.verifica se o usuário está cadastrado;� 2º. Se a senha está correta para posteriormente

criar os cookies.� 3º. Se usuário e senhas estiverem incorretos, é

informado ao usuário e a não cria-se os cookies.

� Falaremos dos cookies, logo a seguir.

Page 19: Php12

Página de Destino: escola.php

� Crie o arquivo e salve como escola.php

Page 20: Php12

Arquivo: login.php - Tela 1

Page 21: Php12

Arquivo: login.php - Tela 2

Page 22: Php12

Comentando: mysql_connect( )

� mysql_connect() estabelece uma conexão com o servidor MySQL.

� Os seguintes padrões são assumidos para os argumentos opcionais que estiverem faltando:

� server = 'localhost:3306', � username = nome do usuário dono do processo do servidor,

password = senha vazia. � Exemplo:

Page 23: Php12

Comentando: mysql_select_db

� mysql_select_db(banco)� Seleciona um banco de dados MySQL� Exemplo:

Nossa Variável que representa o Banco de Dados

Page 24: Php12

Comentando o Arquivo: login.php

� mysql_query()

� Envia uma query para o banco de dados ativo no servidor da conexão informada em link_identifier.

� Se o parâmetro link_identifier não é especificado, a ultima conexão aberta é usada.

$resultado= mysql_query("SELECT * FROM usuarios WHERElogin='$usuario'");

Page 25: Php12

� mysql_num_rows()

� Retorna o número de linhas em um resultado. Este comando é valido apenas para o SELECT.

Comentando o Arquivo: login.php

$linhas = mysql_num_rows($resultado);

Page 26: Php12

Comentando o Arquivo: login.php

� mysql_result()

� Retorna o conteúdo de uma célula do resultado MySQL.

� O argumento field(campo) pode ser o índice do campo, o nome do campo, o a tabela ponto o nome do campo(tabela.campo).

if($senha!=mysql_result($resultado,0,"senha"))

Page 27: Php12

Cookies

O que são Cookies e como funcionam.

Page 28: Php12

Cookies

� É um arquivo-texto que podemos armazenar no computador do usuário, para ser recuperado posteriormente pelo servidor.

� Cookie é formando no mínimo pelo par:� Nome, valor.� Exemplo:

Page 29: Php12

Função setcookie( )

� setcookie() define um cookie para ser enviado junto com o resto dos cabeçalhos HTTP.

Indica que o cookie deve ser transmitido sobre uma conexão segura HTTPS. Quando for definido como 1, o cookie só serádefinido se existir uma conexão segura. O padrão é 0.

Seguro

O domínio que o cookie estará disponível. Domínio

O caminho no servidor para qual o cookie estará disponível. Caminho

O tempo para o cookie expirar. Este é um timestamp Unix (número de segundos após 1/1/1970 às 0:00 horas).

Validade

O valor do cookie. Se não for informado, o servidor tentaráexcluir o cookie com o nome informado.

Valor

O nome do cookie. Nome

DescriçãoParâmetro

Page 30: Php12

Função: Header

� header()

� É usada para enviar diretamete cabeçalhos HTTP headers.

Page 31: Php12

Testando

� Se testarmos a aplicação teremos três ocorrências possíveis:� 1) Usuário não cadastrado;� 2) Usuário cadastrado e senha inválida;� 3) Acesso com sucesso.

� No caso 3, será redirecionado para o arquivo escola.php. Aqui seria interessante:� 1) Criar uma rotina de validação para ser utilizada nas

partes restritas, impedindo também que qualquer usuário não autorizado digite o nome da página direto no webbrowser e tenha o acesso direto a páginas restritas.

� 2) criar uma página de logout para os usuários que estão autenticados.

Page 32: Php12

Validando cookies

� Depois de feito o login, os cookies já foram armazenados na máquina dele.

� Agora cada página que for acessar devemos validar se os cookies existem e se estão com informações corretas.

� Fazemos isso para evitar que o usuário digite diretamente o endereço de uma página sem passar pelo login.

Page 33: Php12

Como validar cookies

� 1º. Passo � Criar uma rotina valida_cookies.inc.� Nessa rotina faremos os testes necessários

através da função IsSet do PHP.� É recomendável fazer esse teste para evitar que

o PHP exiba alguma mensagem de erro ao tentarmos acessar um elemento que não existe no array global $_COOKIE.

Page 34: Php12

Arquivo valida_cookie.inc (1/2)

Page 35: Php12

Arquivo valida_cookie.inc (2/2)

Page 36: Php12

Função IsSet

� A função IsSet() � Informa se uma variável foi e criada e recebeu um

valor. � IsSet() só trabalha com variáveis, qualquer outra coisa

passada como parâmetro resultará em um erro de sintaxe. No nosso exemplo, informa se o arraysglobais Cookies (nome_usuario e senha_usuario):

Page 37: Php12

Para uso:

� Agora todas as páginas restritas no seu início inclua a proteção de validação de cookie.

� No nosso caso só temos uma, escola.php.� Abra esse arquivo e inclua a linha abaixo:

Page 38: Php12

Logout: Arquivo logout.php

� O programa logout.php exclui os cookiescriados no momento do login.

� No exemplo abaixo, ainda encaminhamos o usuário para a página de login inicial.

Page 39: Php12

Altere novamente o Arquivo: escola.php

� Vamos acrescentar um link para logout e o nome do usuário logado no sistema.

Page 40: Php12

Sessões

O que são e como funcionam.

Page 41: Php12

Sessão

� Período de tempo durante o qual o usuário navega pelas páginas do site.

� Quando o usuário entrar no site podemos abrir uma sessão e nela registrar variáveis, que ficarão gravadas no servidor e poderão ser acessadas em qualquer página do site, enquanto a seção estiver aberta.

Page 42: Php12

Identificação da Seção

� Cada sessão tem um número identificador único (session id).

� Uma página para ter acesso aos dados da sessão precisa conhecer esse identificador.

Page 43: Php12

Exemplos de uso

� Sites comerciais:� Carrinho de compra, opções de escolha.

� Sites institucionais:� Dados consultados recentemente.

Page 44: Php12

Nossa meta

� Vamos alterar nosso sistema de login e senha apresentado no tópico cookies, para que ele passe a utilizar sessões.

� Para isso serão necessárias apenas algumas modificações nos arquivos login, validação e logout.

Page 45: Php12

Arquivo: login.php

� Ao invés de criar dois cookies no momento do login. Deveriam ser registradas duas variáveis de sessão.

Troque por

Page 46: Php12

Arquivo: valida_cookies.inc

� Na etapa de validação, deveremos verificar as variáveis de sessão e não mais os cookies.

Troque por

Page 47: Php12

Ainda no Arquivo: valida_cookies.php

� Outra parte que deve ser alterada é a exclusão dos cookies. No caso das sessões, isso equivale a eliminar as variáveis de sessão (nome_usuario e senha_usuario).

Troque por

Page 48: Php12

Finalmente

� Devemos alterar a rotina de saída do usuário (logout.php), fazendo o uso da função session_destroy( ).

� Essa função elimina todos os dados de uma sessão.

� Para liberar o espaço alocado para as variáveis ainda é necessário iniciar o array$_SESSION. Atribua um array vazio.

� Altere o programa logout.php conforme próximo slide.

Page 49: Php12

Arquivo: logout.php e escola.php� Devem ficar assim:

logout.php

escola.php

Page 50: Php12

Altere o arquivo escola.php para que fique

como abaixo:

Page 51: Php12

Obrigado

Maromo