Lista
Exercıcio 1
Exercıcio 2
Exercıcio 3
Exercıcio 4
Modulo 7
Acesso a Base de Dados Via Web
Hernani Costa
Redes de Comunicacao 2011/2012Exercıcios
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
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.
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
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
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).
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.
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.
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.
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.
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
... ...
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:
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”
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.
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;
}
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.
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”);
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.
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.
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>
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
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
Lista
Exercıcio 1
Exercıcio 2
Exercıcio 3
Exercıcio 4
Modulo 7 13/14
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.
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.
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.
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.
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;
}
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”]. ‘!’;
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:
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!”.
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”]);
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.