acesso a base de dados via webhpcosta/rc/rcmod7exercicios.pdflista exerc cio 1 exerc cio 2 exerc cio...

33
Lista Exerc´ ıcio 1 Exerc´ ıcio 2 Exerc´ ıcio 3 Exerc´ ıcio 4 M´odulo7 Acesso a Base de Dados Via Web Hernani Costa [email protected] Redes de Comunica¸ ao 2011/2012 Exerc´ ıcios

Upload: others

Post on 24-Sep-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7

Acesso a Base de Dados Via Web

Hernani Costa

[email protected]

Redes de Comunicacao 2011/2012Exercıcios

Page 2: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 Avaliacao

No do Exercıcio Valores

1 1.05v

2 1.05v

3 1.05v

4 1.05v

Total 4.2v

Page 3: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7

Descreva o modo de funcionamento do acesso a uma BDatraves da linguagem PhP.

Page 4: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 71/7Resolva os pontos seguintes executando os comandos em MySQL.

Crie as seguintes tabelas:

Table: Tabela Jogador.

NomeJogador Idade NomeClube Posicao Nacionalidade

Deco 28 Chelsea Medio Portuguesa

Raul Meireles 26 FC Porto Medio Portuguesa

Ronaldinho 28 AC Milan Avancado Brasileira

Lucho 28 FC Porto Medio Argentina

Joao Moutinho 22 Sporting Medio Portuguesa

Laranjeira 30 Leixoes Defesa Portuguesa

Page 5: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 2/7

Table: Tabela Clube.

NomeClube Pais Idade Estadio

FC Porto Portugal 115 Dragao

Real Madrid Espanha 120 Santiago Barnabeu

Manchester U. Inglaterra 100 Old Trafford

Sporting Portugal 90 Alvalade XXI

Page 6: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 3/7

Inserir os dados nas respetivas tabelas.

Listar todos os clubes.

Listar o nome e o estadio de cada clube.

Listar os nomes de todos os jogadores com mais de 23anos (inclusive).

Page 7: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 4/7

Listar o nome dos jogadores com 26 ou 30 anos.

Listar toda a informacao dos jogadores com idades entreos 22 (inclusive) e os 26.

Listar o nome dos clubes e idade onde a idade e maior que110 e menor que 95.

Listar todos os nomes de jogadores comecados por ‘R’.

Listar todos os nomes de jogadores que contenham “inh”no nome.

Page 8: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 5/7

Listar os nomes dos jogadores e a sua idade por ordemcrescente de idade.

Listar os nomes dos jogadores com idades iguais a 26 anosou com mais de 28 por ordem alfabetica.

Contar o numero de jogadores da tabela jogador.

Contar o numero de medios da tabela jogador.

Page 9: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 6/7

Contar o numero de jogadores que nao jogam no FC Porto.

Listar a idade do clube mais velho da tabela alertclube.

Indicar a idade do jogador mais novo da tabela jogadorque seja medio.

Calcular a media de idades dos jogadores de nacionalidadeportuguesa.

Page 10: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 7/7

Calcular a soma das idades dos clubes portuguesescentenarios.

Listar todos os nomes dos jogadores portugueses quejoguem em clubes de Portugal.

Listar todos os jogadores portugueses que joguem emclubes de Portugal e tenham mais de 25 anos.

Listar todos os jogadores estrangeiros que joguem emequipas portuguesas.

Page 11: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 71/14Resolva os pontos seguintes em linguagem PhP, HTML e SQL.

Criar uma tabela de nome Aluno atraves do MySQL comoa que se mostra de seguida.

Nota: Criar apenas a tabela. Deixe o seu conteudo vazio.a

Table: Tabela Aluno.

Nome Idade

... ...

Page 12: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 2/14

Criar um novo ficheiro de nome form.html onde deveescrever o codigo que permita obter o seguinte formulario:

Page 13: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 3/14

Criar um ficheiro de nome inserir.php onde devera constaro codigo para captar o nome e idade escrito nas caixas detexto.

Ajuda: use o metodo GET ou POST e baseia-se nosseguintes codigos $ GET[‘nome da caixa de texto’] ou$ POST[‘nome da caixa de texto’] para captar o valor dacaixa de texto.

Na pagina inserir.php deve ser mostrada a seguinte frase:

O seu nome e “valor da caixa de texto nome”A sua idade e “valor da caixa de texto idade”

Page 14: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 4/14

Acrescentar o codigo necessario para ligar a BD e paraconseguir introduzir os dados nela atraves do formulario.

Alterar o codigo da pagina inserir.php onde agora deve sermostrada a seguinte mensagem:

Os dados foram inseridos com sucesso!

No caso de existir um erro deve conseguir deteta-loatraves de codigos de erro que devem estar presentesem todas as funcoes relacionadas com a BD no seucodigo PhP.

Veja o seguinte exemplo do que se pretende, na funcaoassociada a ligacao a BD.

Page 15: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 5/14

$Iigax = mysqI connect(‘localhost’, ‘root’, ‘ ’);

If (!$ligax){echo ‘<p> Erro: Falha na ligacao a BD.’;

exit;

}

Page 16: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 6/14

Proceder as alteracoes do codigo anterior para o seu casoparticular, nao se esquecendo de aplicar, da mesma forma,o codigo de erros as restantes funcoes.

No caso de ja existir um nome na tabela igual ao que sepretende inserir deve aparecer no ecra a seguintemensagem:

O aluno x ja se encontra registado.

Page 17: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 7/14

Crie um ficheiro de nome ligabd.php onde deverao constaros codigos responsaveis pela ligacao a BD bem como pelaescolha da BD.

Substitua no ficheiro inserir.php as linhas de codigo quecolocou no ficheiro Iigabd.php pela seguinte:

include (“ligabd.php”);

Page 18: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 8/14

Tente inserir um novo aluno para garantir que apesardesta alteracao, tudo funciona normalmente.

Nota: Em todos os ficheiros que serao criados a partirdeste momento, que necessitem de aceder a BD, deveraoincluir apenas o codigo include (“ligabd.php”);

Acrescente ao form.html um link de nome “ListarRegistos” para uma pagina de nome listar.php que ira criarde seguida.

Page 19: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 9/14

Crie a pagina listar.php que mostre todos os registos databela Aluno.

Ajuda: a porcao do codigo seguinte lista todos os nomesde jogadores, idade e clube da tabela jogador na forma deuma tabela.Baseie-se neste codigo, procedendo as alteracoesnecessarias para que funcione quando lista os registos databela aluno.

Page 20: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 10/14

<table border=“1”><tr><th> Nome Jogador </th><th> ldade </th><th> Nome Clube </th></tr>

<?php

for ($i=0; $i <$num registos; $i++) {$registos = mysql fetch array($result);

echo ‘<tr>’;

echo ‘</td>’ .$registos [‘nomejogador’]. ‘</td>’;

echo ‘</td>’ .$registos [‘idade’]. ‘</td>’;

echo ‘</td>’ .$registos [‘nomeclube’]. ‘</td>’;

echo ‘</td>’ .$registos [‘Ano’]. ‘</td>’;

echo ‘</td>’ .$registos [‘Email’]. ‘</td>’;

echo ‘</tr>’;

}</table>

Page 21: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 11/14

Acrescentar ao form.html um link de nome “Pesquisar”para uma pagina de nome pesquisa.html que iremos criarde seguida.

Crie uma pagina de nome pesquisa.html com o seguinteaspeto:

Nota: o botao de submit devera estar direcionado para oficheiro pesquisa.php

Page 22: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 12/14

Crie um ficheiro de nome pesquisa.php onde liste numatabela, a semelhanca do listar.php, os nomes e idades dosalunos da tabela aluno que resultem da pesquisa.

Acrescente ao final da pagina pesquisa.php o seguinteformulario:

Nota: o botao de submit devera estar direcionado para oficheiro apagar.php

Page 23: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 13/14

Page 24: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 14/14

Crie um ficheiro de nome apagar.php que apague umregisto da tabela Aluno conforme o nome inserido nacaixa de texto acima.

Page 25: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 1/9

Crie uma BD e respetiva tabela que permita interagir comos dados dos formularios seguintes. Nao se esqueca deescolher uma chave primaria para a tabela.

Notas: A palavra “Registe-se” e um hyperlink para apagina form.html onde deve constar os campos queaparecem na figura do proximo slide.

Page 26: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 2/9

Crie um ficheiro de nome login.php.

Neste ficheiro deve constar o codigo responsavel porverificar os dados do utilizador.

Page 27: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 3/9

Caso este introduza corretamente os dados no formularioanterior, deve-lhe ser mostrada a pagina main.php e aindaa seguinte mensagem:

Ola X!

No caso do utilizador nao se encontrar registado entao apagina a ler deve ser novamente a entrar.html.

Ajuda: a forma de redirecionar para outros ficheiros eapresentado em seguida.

Page 28: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 4/9

if (condicao para verificar username e password){header[‘Location: main.php’];

exit;

} else{header[‘Location: entrar.html’];

exit;

}

Page 29: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 5/9

No ficheiro login.php devera ficar gravada uma variavel desessao. Adapte o seguinte codigo ao seu.

Session start();

$ SESSION[“nome”]=$nome;

No codigo do ficheiro main.php ja podera fazer aparecer onome (em vez do X) de quem fez o login atraves da suavariavel de sessao.

Session start();

echo ‘Ola’. $ SESSION[“nome”]. ‘!’;

Page 30: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 6/9

Neste momento, se pretendesse entrar no main.phpbastava escrever essa pagina diretamente no browser.

Como devem compreender esta e uma falha grave deseguranca, visto permitir a entrada numa paginasupostamente privada.

Para impedir que isto aconteca, proceder as seguintesalteracoes:

Page 31: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 7/9

Incluir (com include) um ficheiro de nome validacao.phpno codigo do main.php.

De seguida, no ficheiro validacao.php devera encontrar-seo codigo que verifique se a variavel de sessao relativa aonome do utilizador esta definida

dica: pode usar a funcao isset(nome da variavel)

No caso de nao se encontrar definida, deve saltar para apagina erro.php (dica: pode usar a funcao header()) quemostrara no ecra “Acesso reservado a utilizadoresregistados!”.

Page 32: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 8/9

Na pagina main.php devera ser criado um botao do tiposubmit de nome “sair”.

Ao clicar nesse botao um ficheiro de nome logout.phpdeve ser chamado.

No ficheiro deve constar o seguinte codigo:

Session start();

unset($ SESSION [“nome”]);

Page 33: Acesso a Base de Dados Via Webhpcosta/rc/rcMod7Exercicios.pdfLista Exerc cio 1 Exerc cio 2 Exerc cio 3 Exerc cio 4 M odulo 7 Acesso a Base de Dados Via Web Hernani Costa hpcosta@dei.uc.pt

Lista

Exercıcio 1

Exercıcio 2

Exercıcio 3

Exercıcio 4

Modulo 7 9/9

Adicionalmente devera constar no final do codigo acimamostrado, o redirecionamento para a pagina entrar.html.

Teste o seu codigo tentando aceder diretamente a paginamain.php apos clicar no botao sair.