|
INF 533 - Programação para a Web - 1º Semestre 2004
Prof. Célio Guimarães IC - Unicamp |
|
Atualizado em 06-Jul-04
Projeto Final da disciplina
O Projeto Final poderá ser entregue até o dia 2/08. Poderá ser feito em grupos
de um até três alunos. Além do projeto uma página de documentação deverá ser colocada na Web com
os nomes dos participantes.
O grupo deverá informar-me por e-mail a URL onde se encontra o projeto.
Uma demonstração preliminar deverá ser feita no último dia de aula.
Ementa:
1ª Parte: programação no Cliente
Introdução à linguagem HTML via exemplos.
Introdução a XML: histórico, conceitos básicos, DTDs. Introdução a XHTML. Validação de
documentos HTML 4.0 e XHTML.
A influência de XML sobre HTML: Cascading Style Sheets (CSS) - conceitos e exemplos.
Introdução aos protocolos http 1.0 e 1.1. O problema de "estado".
Introdução a Javascript: programação, eventos, formulários; discrepâncias no tratamento
de eventos básicos entre Netscape e Internet Explorer. Experiências no laboratório com
testes selecionados. Introdução a expressões regulares; validação de formulários em
Javascript via expressões regulares.
Projeto da 1ª parte: desenvolvimento de uma aplicação simples envolvendo
formulários, tabelas, CSS, Javascript e expressões regulares, em conformidade com os
padrões HTML 4.01 ou XHTML (esta aplicação servirá de front-end para o projeto da
2ª Parte)
2ª Parte: programação no Servidor
Conceitos básicos de um Servidor Web; exemplo de configuração do Servidor Apache;
segurança num Servidor Web. Introdução a uma linguagem script de programação para
a Web, Php: semelhanças e diferenças da linguagem C; estruturas de dados, comandos,
integração com o protocolo CGI.
O conceito de "sessão"; problemas com a característica de "falta de estado"
(stateless) do protocolo http; soluções com cookies e outras técnicas para
introduzir estado na aplicação.
Interface de Php com um gerenciador de base de dados relacional (SGBD); exemplos;
introdução a interfaces genéricas independentes de SGBD. O uso de "templates" como
interface de programação com "Web designers".
Projeto da 2ª Parte: desenvolvimento de uma aplicação no Servidor envolvendo
estado, com dados persistentes armazenados num SGBD relacional (opcionalmente em arquivos
ou Btrees) utilizando a interface da 1ª Parte.
Hints:
- Para cifrar senhas use a função md5() ou crypt() (p. 259 do "livro azul")
- Para usar MySQL veja a seção a seguir.
Como utilizar o MySQL na bidu.lab
O script mysql.php, aqui disponibilizado,
tem duas finalidades:
- Permite V. acessar o SGBD MySQL na bidu.lab a fim de criar tabelas
na Base de Dados inf533,
inserir dados em tabelas, fazer consultas e atualizações, via comandos SQL
(a senha do usuário será dada em aula; para executar o script utilize este
endereço)
- Serve como exemplo para escrever uma aplicação em Php que acessa uma BD MySQL e
formata dados recuperados da BD em tabelas HTML.
Uma boa introdução à linguagem SQL e aos recursos do MySQL está
no capítulo 3 do manual do MySQL
(pg 128-158).
As funções da API de Php com MySQL estão descritas no
"livro azul", p 230-231. (V. vai precisar usar apenas cerca de 8 delas, que serão
detalhadas em aula).
Veja aqui
o projeto das tabelas de uma BD muito simples, envolvendo torneios de tenis da ATP.
O capítulo 10 do "livro azul" tem vários exemplos simples do uso de MySQL via Php.
O Capítulo 6 do livro
Fundamentos de Bancos de Dados
possui uma introdução mais aprofundada da linguagem SQL.
Enviando via formulário scripts/documentos do ambiente Windows para seu homedir
Você poderá editar e testar scripts ou documentos html na bidu.lab a partir do
ambiente Windows da seguinte forma:
No ambiente Linux crie num subdiretório do seu public_html um arquivo vazio com o nome do
script/documento e com permissões wr (pois o usuário nobody do Apache
vai reescrevê-lo durante o upload). Por exemplo:
touch teste.php; chmod a+rw teste.php
Modifique a linha do script upload.php
onde é definida a variável $dirname, colocando o caminho completo
do diretório onde vai estar o seu script/documento.
A partir do browser no ambiente Windows invoque na bidu.lab o script upload.php
entrando com o nome do script/documento que Você editou localmente (teste.php, por exemplo)
e envie-o para o seu homedir clicando em submit.
Teste o seu script a partir do browser no ambiente Windows.
Quando seu script estiver depurado proteja-o novamente contra escritas de outros usuários!
Obs: obviamente, V. também pode usar ftp para transmitir arquivos do ambiente Windows para seu homedir.
Algumas referências para leitura e estudo:
Introdução a
linguagens de marcação.
Trabalho pioneiro do criador da Web, Tim Berners-Lee, An Information Infrastructure for High-Energy
Physics
Exemplos em
HTML e XML do livro "XML How to Program", Deitel et al, Pr. Hall 2001 (Capítulos 1 -
6).
Esses exemplos serão abordados no curso e deverão ser trabalhados/modificados pelos
alunos.
Dois ótimos, simples e livres editores HTML para Windows: 1st Page 2000 e HTML - Kit. Ambos incluem o sistema
Tidy de Dave Raggett para conversão de um documento HTML obedecendo à
especificação HTML 4.0 ou XHTML além de recursos de reformatação (pretty print),
etc.
Tutorial sobre HTML de Dave
Raggett . Tutorial sobre
Cascading Style Sheets (CSS) do mesmo autor.
Ótimo tutorial sobre CSS (encontrado pelo Mario Bernardinelli)
Técnica
tableless
para projeto de páginas formatadas com colunas sem usar frames ou tabelas,
preconizada pela w3.org e baseada em folhas de estilo.
O mesmo exemplo acima, ligeiramente
simplificado.
Outro exemplo de
página formatada em 3 colunas, sem tabelas
Nomes de cores
reconhecidos por Netscape e I. Explorer (mas não pela w3.org).
Símbolos
especiais do HTML (matemáticos, letras gregas, etc).
Guia Mikodocs da Linguagem HTML
Tutoriais (muito bons) do James Marshall.Em
particular veja o tutorial sobre HTTP
Um programa simples em
C (usando sockets) que se conecta a um Servidor Web qualquer e permite "simular" um
browser via comandos HTTP digitados pelo usuário.
Outro tutorial sobre
HTTP
Introdução aos tipos de conteúdo MIME.
Tutorial sobre Javascript.
Manual detalhado de Javascript
1.3 (Netscape)
Eventos suportados por Javascript 1.3.
Uma bela página pessoal de um guru do grupo Apache, Engelschall, com efeitos visuais simples em
Javascript. Examine o código fonte: contém tabelas mas não frames conforme aparenta à
primeira vista.
Referência para XML: A Technical
Introduction to XML
Um pacote unificado,
PHPTriad, para o ambiente Windows do Servidor Apache, PHP e Gerenciador
de Base de Dados Mysql. De fácil instalação, recomendado para trabalhar em casa.
Capítulo do livro "Web Database Applications", Hugh Williams, sobre controle
de sessões em PHP.
Veja um exemplo de sessão em Php envolvendo uma mini-aplicação com 3 páginas:
pform.html,
thanks.php
e regform.php.
Adodb
é uma biblioteca que provê uma API genérica para acesso a BDs independente do SGBD
(suporta um grande número de SGBDs).
Uma introdução a templates através do pacote
FastTemplates
(open source).