1. WAMP
Aula 12 – PHP
Sistema de Autenticação de
Usuários
Windows, Apache, MySQL e PHP
2. 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.
3. 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.
4. 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.
5. Junto com o Easyphp
Para acessá-lo basta digita no navegador:
6. 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.
7. Criando o Banco de Dados
Banco: escola
usuarios
tabela
nome
login
senha
Tabela n
17. Tela de Login – arquivo:
login.html
txtUsuario
txtSenha
<form method="POST" action="login.php">
18. 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.
22. 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:
24. 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 WHERE
login='$usuario'");
25. Comentando o Arquivo: login.php
mysql_num_rows()
Retorna o número de linhas em um resultado.
Este comando é valido apenas para o SELECT.
$linhas = mysql_num_rows($resultado);
26. 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"))
28. 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:
29. Função setcookie( )
setcookie() define um cookie para ser enviado junto
com o resto dos cabeçalhos HTTP.
Parâmetro Descrição
Nome O nome do cookie.
O valor do cookie. Se não for informado, o servidor tentará
Valor
excluir o cookie com o nome informado.
O tempo para o cookie expirar. Este é um timestamp Unix
Validade
(número de segundos após 1/1/1970 às 0:00 horas).
Caminho O caminho no servidor para qual o cookie estará disponível.
Domínio O domínio que o cookie estará disponível.
Indica que o cookie deve ser transmitido sobre uma conexão
Seguro segura HTTPS. Quando for definido como 1, o cookie só será
definido se existir uma conexão segura. O padrão é 0.
31. 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.
32. 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.
33. 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.
36. 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 arrays
globais Cookies (nome_usuario e senha_usuario):
37. 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:
38. Logout: Arquivo logout.php
O programa logout.php exclui os cookies
criados no momento do login.
No exemplo abaixo, ainda encaminhamos o
usuário para a página de login inicial.
39. Altere novamente o Arquivo: escola.php
Vamos acrescentar um link para logout e o
nome do usuário logado no sistema.
41. 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.
42. 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.
43. Exemplos de uso
Sites comerciais:
Carrinho de compra, opções de escolha.
Sites institucionais:
Dados consultados recentemente.
44. 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.
45. 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
46. 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
47. 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
48. 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.