Curso de Verão em Bioinformática Estrutural Introdução ao desenvolvimento Web usando HTML, CSS e PHP



Documentos relacionados
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Web Design. Prof. Felippe

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Desenvolvendo Websites com PHP

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira

Mais sobre uso de formulários Site sem Ajax

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

Programando em PHP. Conceitos Básicos

Programação Web Prof. Wladimir

PHP Material de aula prof. Toninho (8º Ano)

Webdesign HTML. Introdução a HTML e as principais tags da linguagem. Thiago Miranda dos Santos Souza

02 - Usando o SiteMaster - Informações importantes

Desenvolvimento Web Introdução a XHTML. Prof. Bruno Gomes

Aplicativos para Internet Aula 01

PROGRAMAÇÃO MANUAL DE INSTRUÇÕES SEJA BEM VINDO VERSÃO /01/2013 UDS SOLUÇÕES DIGITAIS

Adapti - Technology Solutions Leonor cardoso nº 331 Fone : (041) Curitiba - PR MANUAL DO USUÁRIO

QUEM FEZ O TRABALHO?

2 echo "PHP e outros.";

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

Apostila de XHTML Curso de Internet Professor Rinaldo Demétrio

HTML 5 + CSS APRESENTANDO O CSS ESTILOS LOCAIS

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Roteiro 2: Conceitos de Tags HTML

Lógica de Programação

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Instalação do PHP no Linux

Dicas para usar melhor o Word 2007

Instalando o WordPress em localhost

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Manual de configuração do sistema

Sumário. HTML CSS JQuery Referências IHC AULA

Scriptlets e Formulários

CONSTRUÇÃO DE BLOG COM O BLOGGER

Coleção - Análises de marketing em clientes de

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Flex. MANUAL DE USO DA FERRAMENTA FLEX O Flex como gerenciador de conteúdo

Portal do Projeto Tempo de Ser


Logo abaixo temos a Barra de Menus que é onde podemos acessar todos os recursos do PHP Editor.

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Microsoft Access XP Módulo Um

FCT Faculdade de Ciências e Tecnologia Serviço Técnico de Informática STI SGCD Sistema Gerenciador de Conteúdos Dinâmicos

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

Webdesign A tag HEAD e as Meta tags

EXEMPLO DE COMO FAZER UMA MALA DIRETA

Introdução ao HTML 5 e Implementação de Documentos

Passa a passo para construir uma página pessoal - Parte 1

Manual de Utilização do PLONE (Gerenciador de página pessoal)

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados

Internet e Programação Web

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Declaração DOCTYPE e Tag Raiz html

Google Drive: Acesse e organize seus arquivos

Manual do Painel Administrativo

LINGUAGEM DE PROGRAMAÇÃO HTML COMPONENTES: ROBSON EDMILSON

USANDO O ROUNDCUBE WEBMAIL

Omega Tecnologia Manual Omega Hosting

Técnicas e processos de produção. Profº Ritielle Souza

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

Manual de Gerenciamento de Conteúdo

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Guia de instalação para ambiente de Desenvolvimento LINUX

Trecho retirando do Manual do esocial Versão 1.1

Características do PHP. Começando a programar

Introdução ao PHP. Prof. Késsia Marchi

Manual de Utilização do Zimbra

ASSOCIAÇÃO CRISTÃ DE MOÇOS DO RIO GRANDE DO SUL DEPARTAMENTO DE TECNOLOGIA DA INFORMAÇÃO

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Mini-curso de PHP. Aulas ministradas por: André Luis de Paula Arthur Kalsing Diego Silva

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Guia de Início Rápido

Acessando um Banco de Dados

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Programação WEB II. Sessions e Cookies. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Criando um script simples

Lição 1 - Criação de campos calculados em consultas

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Professor: Paulo Macos Trentin Escola CDI de Videira 4/6/2011 1

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

HTML5. Prof. Salustiano Rodrigues de Oliveira

Lazarus pelo SVN Linux/Windows

AULA 3 FERRAMENTAS E APLICATIVOS DE NAVEGAÇÃO, DE CORREIO ELETRÔNICO, DE GRUPOS DE DISCUSSÃO, DE BUSCA E PESQUISA (PARTE II)

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Linguagem de. Aula 06. Profa Cristiane Koehler

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Web Design Aula 13: Introdução a CSS

COMO COLABORAR NO WIKI DO MOODLE 1. Orientações para produção escolar colaborativa no wiki do Moodle:

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

Manual das funcionalidades Webmail AASP

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Transcrição:

Curso de Verão em Bioinformática Estrutural Introdução ao desenvolvimento Web usando HTML, CSS e PHP Eduardo Campos dos Santos Felipe Ferré

Apresentação Este documento foi construído para servir como material de apoio, mais especificamente como notas de aula, sobre conceitos de desenvolvimento Web discutidos durante o I Curso de Verão em Bioinformática Estrutural.

Introdução A programação do ambiente Web que desenvolveremos neste curso envolverá o desenvolvimento de parte de código que é interpretado no computador do usuário mais especificamente pelo seu navegador e parte de código que será executado pelo computador que atuará como servidor. No primeiro caso dizemos tratar-se de programação client-side e, no segundo caso, chamamos de programação server-side. Sobre a programação client-side apresentaremos fundamentos sobre HTML, CSS e JavaScript. Focaremos somente sobre os fundamentos e apresentaremos exemplos particularmente interessantes para nossos propósitos. Induziremos os alunos a adotarem os padrões sugeridos pelo XHTML de modo que seu código HTML seja mais robusto, eficiente e confiável. Preparação do servidor (LAMP) O acrônimo LAMP (às vezes chamado de quarteto fantástico) vem de: Linux, Apache, MySQL, PHP. Significa um servidor web e de banco de dados baseado no sistema operacional Linux, no web-server Apache, no servidor de banco de dados MySQL e no interpretador de comandos PHP. Para que tudo funcione como se espera é preciso ainda que esteja instaladas algumas bibliotecas adicionais e algumas configurações precisam ser ajustadas. Felizmente, as distribuições de Linux atuais fornecem mecanismos bastante simples para deixar tudo instalado e configurado adequadamente. Mostraremos aqui uma maneira que consiste em dar um único comando na linha de comandos do console. Tomando-se como exemplo o Ubuntu 10.10 (ou outra distro debian-like atual), basta dar o seguinte comando como root: apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql Outros pacotes serão incluídos pelo apt-get devido às dependências de pacotes encontradas. Observe que além do servidor web (apache), do servidor MySQL (mysql-server) e do interpretador PHP (php5), incluímos na lista de pacotes a biblioteca que contém o módulo do Apache2 que permite ao Apache2 executar o PHP5 ( libapache2-mod-php5) e também o módulo do PHP que adiciona as funções do PHP para acessar e manipular uma base de dados MySQL (php5-mysql). Observe que o comando deve ser dado como root. Alternativamente, utilizando um usuário com privilégios de root, pode usar o comando sudo: sudo apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql Por padrão, o Apache só reconhece o diretório /var/www constituindo este a raiz do Webserver. A página com a frase It's Working é o arquivo index.html que está no referido diretório. Somente o usuário root tem poder de escrita neste diretório. Para configurar o Apache para reconhecer também a chamada pasta pública do usuário (usualmente uma pasta denominada public_html na pasta do usuário) é preciso efetuar alguns simples procedimentos. 1) É preciso criar em /etc/apache2/mods-e nabled os soft links para os arquivos userdir.conf e userdir.load que estão em /etc/apache2/mods-available. Ou seja, os módulos já estão disponíveis (available) mas não ativados (enabled). 2) Além disso é preciso comentar algumas linhas do arquivo php5.conf (pode abri-lo diretamente em modsavailable ou pelo seu link em mods-enabled). Leia as orientações no próprio arquivo. Quanto ao servidor MySQL, vale destacar que, por padrão, ele está configurado para não aceitar conexões remotas. Se seu webserver (Apache) estiver em uma máquina diferente da que está instalada o MySQL, será preciso modificar uma linha do arquivo /etc/mysql/my.cnf. Neste caso, basta comentar a linha: bind-address = 127.0.0.1

Visão geral Façamos aqui uma explanação sobre como tudo funciona. Figura 1: Fluxograma geral de uma aplicação web no LAMP (Linux, Apache, MySQL, PHP).

Façamos um exercício simples para compreender que o PHP é um interpretador e, portanto, não fica rodando (ou escutando uma dada porta). E ele entrega o resultado da interpretação do código para aquele que o chamou. Assim, se ele for chamado a partir do console, retornará o resultado para o console. Mas se for acionado via Webserver (este sim é um servidor e fica "escutando uma porta"), entregará o resultado para o Webserver. Este, por sua vez, repassa o resultado para quem o requisitou o navegador do usuário. A Figura 2 ilustra e explica o experimento. Figura 2: Experimento: acessando um mesmo arquivo via php-cli (acionado a partir do console) e do Apache (acionado por uma requisição disparada em um navegador). Em ambos os casos, o interpretador PHP apenas interpreta o código do arquivo e retorna o resultado para o ente que o acionou. O código-fonte PHP original é simplesmente <?php echo( <b>oi Mundo!</b>\n );?>. Console como o navegador recebem o mesmo resultado, entretanto, como o console não interpreta tags HTML, ele exibe na tela exatamente o conteúdo retornado pelo PHP. Já o navegador, interpreta o conteúdo recebido como sendo um código-fonte HTML e exibe o resultado desta interpretação (ao invés de exibir <b> e </b>, exibe o texto que se encontra entre esses dois elementos em negrito). Para visualizar o conteúdo do arquivo recebido pelo navegador, basta dar o comando para o navegador exibir o código-fonte. O \n foi transformado em quebra de linha em ambos os casos. No caso do console, isso foi interessante para que o prompt seguinte não ficasse na mesma linha do <b>oi Mundo!</b>. No caso de um documento HTML, quebras de linha e tabulação não modificam o resultado renderizado e exibido na tela do navegador, mas dão uma aparência mais agradável ao código-fonte HTML e pode ser interessante se você precisar analisar este código.

Programação client-side: XHTML, CSS e JavaScript Fundamentos de HTML / XHTML HTML (HyperText Markup Language) é a linguagem para criação de páginas web e seus enlaces. É constituída por entidades denominadas tags. Uma tag pode possuir atributos (ou propriedades) e seus respectivos valores. O estudo de HTML consiste em estudar as tags que existem e seus respectivos atributos e possíveis valores. Ou seja, não se pode criar uma tag ou definir um novo atributo para uma dada tag ou ainda usar um valor não aceito para determinado atributo de determinada tag. Em XML (extensible Markup Language) pode-se criar novas tags e definir seus possíveis atributos e valores. Isso porque XML serve para estruturar o conteúdo de um dado documento num formato bom para ser lido por algum programa (machine-readable). Mas se você quer que seu documento possa ser visualizado em um navegador mostrando-se com textos formatados, gravuras ilustrativas, tabelas etc., então você precisa usar HTML. O XHTML consiste-se do prórprio HTML, mas com a observância obrigatória de algumas regras provindas do XML. A maior restrição imposta por essas regras garantem um código mais confiável. Algumas das regras já existiam no HTML, mas os navegadores modernos aceitavam (e por vezes até interpretavam adequadamente) códigos que desrespeitavam tais regras. Por exemplo, a ordem adequada para abrir e fechar tags sempre foi similar à regra da matemática sobre chaves, colchetes e parênteses. Ou seja, estruturas como {[ ][(...)]} estão corretas, mas uma estrutura como {[( ])} é imprópria porque o colchetes é fechado antes do parênteses. O programa que interpreta os códigos HTML é o navegador do usuário. Quando o usuário navega em um site (ou simplesmente visualiza um documento HTML em seu navegador), o navegador interpreta todas as estruturas do tipo <algo> ou <algo e mais alguma coisa> como sendo tags HTML e tenta fornecer o resultado dessa tag. Se o que aparece entre os símbolos < e > não for uma tag HTML válida, o navegador, em geral, simplesmente a desconsidera e não exibe nem os símbolos < e >, nem o texto que estiver entre eles. Observe que a primeira palavra entre os símbolos < e > deve estar colada (sem espaços) ao símbolo <. Dito isso, podemos agora definir tag. Uma tag é uma entidade no formato: <nome_da_tag atributo1= valor_do_atributo_1 atributo2= valor_do_atributo_2 > O que define o nome da tag é a palavra (ou letra) que aparece colada ao símbolo <. Pode haver espaço(s) após o nome da tag e, caso haja algo mais depois do nome da tag e o símbolo de fecha mento >, então o que aparece deve apresentar-se no formato atributo= valor. Aqui já estamos adotando uma regra do XHTML compare no quadro abaixo alguns casos do padrão antigo HTML e do novo padrão XHTML. Padrão antigo (HTML) Novo padrão XHTML <br> <br /> <img src=... alt=... > <img src=... alt=... /> <input type= checkbox checked> <input type= checkbox checked= checked /> <input name= pdb...> <input name= pdb id= pdb /> No padrão antigo (HTML), para incluir uma caixa do tipo checkbox que devia aparecer já marcada, bastava incluir a palavra-chave checked dentro da tag input que define a referida caixa. Entretanto, para que a tag input que define a caixa fique de acordo com o padrão XHTML, devemos usar uma estrutura que mais parece uma gambiarra (e talvez seja mesmo) mas é a gambiarra padronizada oficialmente incluímos não apenas a palavra checked mas sim checked= checked. Além disso,

para ficar de acordo com o XHTML que define que toda tag será fechada incluímos um espaço seguido da barra / antes de fecharmos a tag. Isso porque a tag input originalmente no HTML não era fechada. Bem... vamos definir logo as regras do padrão XHTML para que já nos acostumemos com elas. Toda tag e seus atributos devem ser escritos com letras minúsculas; A todo atributo deve estar definido um valor entre aspas duplas; Toda tag deve ser fechada; As tags devem ser fechadas na ordem apropriada. Para uma discussão mais detalhada sobre as diferenças entre HTML e XHTML, incluindo alguns exemplos ilustrativos, sugerimos consultar as páginas: http://www.landofcode.com/xhtml-tutorials/differences-between-html-and-xhtml.php http://www.landofcode.com/xhtml-tutorials/xhtml-syntax.php O quadro da Figura 3 exibe o código básico que toda página no padrão XHTML deve conter: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>este é o título que aparece na Barra de Título do navegador</title> </head> <body> <p>aqui fica o conteúdo do corpo da página. Este foi o primeiro paráragrafo.</p> </body> </html> Figura 3: Código XHTML básico A duas primeiras tags são casos diferentes não são fechadas com barra (/) no final. A primeira é importante se você for usar caracteres especiais (e.g. letras acentuadas, cedilha etc.) sem ter que usar códigos para elas. A segunda linha define o Doctype do documento. O Doctype é a Declaração do Tipo de Documento ou simplesmente DTD, todo documento (X)HTML deve conter um Doctype logo em seu início. É ele que vai dizer para o navegador qual é a versão do (X)HTML que você está usando no arquivo. Existem diferentes versões de HTML, cada uma com sua regra e algumas diferenças na sintaxe. Se você deixar de declarar o Doctype em seu arquivo (X)HTML, o navegador tentará adivinhar qual é o Doctype. Às vezes ele acerta, às vezes não, o que pode provocar uma renderização defei tuosa pelo navegador. Existem três tipos principais (e alguns outros exóticos ): Strict; Transitional e; Frameset. Doctype Strict pode ser um pouco complicado para iniciantes porque você precisa escrever um código impecável, sem erros, você não pode usar tags e atributos de apresentação como a tag <font>, <body bgcolor= red >, etc. E você deve usar CSS para qualquer tipo de estilo/apresentação/design

que queria usar na página. Doctype Transitional foi destinado para permitir a escrita de códigos compatíveis com navegadores mais antigos (que não reconhecem CSS por exemplo) e para ajudar os web designers a melhorarem seus códigos enquanto aprenderem as novas recomendações. Com Transitional você poderá cometer alguns erros e usar tags e atributos de apresentação. Doctype Frameset foi feito para designers que querem usar frames em suas páginas. O uso de frameset foi criticado desde que surgiu. Pesquise bastante antes de optar por usar frames. A dica que deixamos aqui, é: NÃO USE FRAMES. No máximo, use inline frames (iframes) e em casos específicos onde sejam, de fato, interessantes. Quer um bom exemplo de uso de iframes? Gmail. No quadro abaixo, incluímos o uso de algumas outras tags básicas todas destinadas à formatação. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>este é o título que aparece na Barra de Título do navegador</title> </head> <body> <h1>esta é uma forma simples de definir um título</h1> <h2>esta é uma forma simples de definir um subtítulo</h2> <h3>esta é uma forma simples de definir um subsubtítulo</h3> <p>este é o primeiro paráragrafo.</p> <p>esta é a primeira linha do segundo parágrafo.<br />E esta, a segunda.</p> <p>usar duas tags br NÃO é o mesmo que usar a tag parágrafo.</p> <p style="text-align:center">teste com dois parágrafos.</p> <p>como ficou o alinhamento deste?</p> <p style="text-align:center">teste com dois <br />.<br /><br /> Como ficou o alinhamento deste?</p> <!-- Comentário: o uso do atributo align para a tag p foi eliminado a partir do HTML 4.01 e do XHTML 1.0. Os navegadores atuais não reconhecem este atributo. --> <p>um pequeno exemplo com algumas coisas: você pode escrever <qualquer abobrinha>?? entre os símbolos < e > desde que tenha uma letra colada ao sinal de <font color="#ff0000">menor que (<)</font> porque o navegador tentará interpretar como código <b>html</b> e, se não conseguir, simplesmente ignorará sem <font color="#0000ff" size="+3">exibir</font> nenhuma mensagem de erro. Por outro lado, entenda que você precisa escrever tags, atributos e valores corretamente (inclusive sem erros de grafia).</p> <p>aqui um exemplo de: <i>itálico</i>, <b>negrito (bold)</b>, <u>sublinhado (underline)</u> e também de algumas combinações: <b><i>negrito e itálico</i></b>. </body> </html> Figura 4: Código XHTML com algumas tags fundamentais

Figura 5: O Resultado da renderização do código da Figura anterior Para inserir uma imagem, use a tar <img> e para inserir um link, use a tag <a>. Para indicar qual imagem deve ser carregada ou qual documento deve ser referenciado, é preciso indicar o caminho e o nome do arquivo. No caso da tag <img> isso é feito pelo atributo src e, no caso da tag <a>, pelo atributo href. As Figuras 6 a 9 ilustram exemplos de endereços relativos.

Figura 9: Exemplo contendo um link (tag <a> de address). O conceito de endereço relativo é o mesmo daquele relativo à tag <img>.

A Figura 10 ilustra o uso de endereços absolutos. O uso de tabelas é muito usual em sites do tipo que iremos trabalhar. Atualmente, é possível cons truir páginas com estruturas de linhas e colunas sem utilizar tabelas propriamente ditas. Isso é possível utilizando CSS com tags <div>. A boa e velha tabela sempre tem seu lugar. A Figura 11 representa um pequeno tutorial sobre tabelas ilustrando o efeito de alguns de seus atributos. Deixaremos para criar uma tabela efetivamente útil para nossos propósitos ao tratarmos o CSS.

Vejamos agora algo sobre formulários. A Figura 12 ilustra um exemplo simples de formulário e a Figura 13 exibe seu código-fonte. Este exemplo contém apenas dois tipos de elementos (<input type= text /> e <select...>) além dos botões (<input type= submit /> e <input type= reset />). Outros exemplos possíveis são <input type= checkbox /> <input type= radio /> <input type= hidden /> <textarea...>. Figura 12: Exemplo de formulário Figura 13: O código-fonte para gerar o formulário da Figura anterior. Aqui foram utilizados somente dois tipos de elementos (caixa de texto e lista de seleção). Observe que a lista de seleção permite passar valores múltiplos. Por isso, seu valor está sendo passado em um array selected_target[]. Atenção ao uso dos atributos name e id para garantir retrocompatibilidade (name), compatibilidade com as recomendações atuais (id) e também para poder escrever códigos JavaScript que referenciam os elementos do formulário.

Fundamentos de CSS O uso do CSS (Cascading Style Sheet) atualmente é não apenas necessário para construir interfaces mais atraentes, mas é também uma recomendação para construir códigos mais confiáveis segundo padrões webstandart e melhor tratados por navegadores e outros programas (programas que lêem o documento e transformam o texto em voz; programas para tratamento automático da informação distribuída em diversos documentos etc.). Além disso, como já vimos, alguns atributos HTML estão sendo simplesmente eliminados e não mais compreendidos pelos navegadores, tornando o CSS a única alternativa para obter certos resultados. Como o caso do atributo align da tag <p>. Para evitar que sua página fique com uma aparência arcaica, você deve, no mínimo, utilizar a atri buição text-decoration:none do CSS para fazer com que os hyperlinks não sejam sublinhados, pois os navegadores atuais ainda sublinham por padrão os hyperlinks. A combinação de CSS com JavaScript costuma produzir resultados bastante atraentes e interessantes, como menus dinâmicos e seções dinâmicas. Há quatro maneiras de se inserir atribuições CSS em um documento: (1) diretamente em uma dada tag usando o atributo style, por exemplo: <font style= color:#f4f3fa; font-style:italic >teste</font>) (2) pode-se definir os estilos de formatação para as tags HTML ou criar classes de estilo que podem ser usadas em diferentes tipos de tags usando a tag <style>. Em geral, isso é definido no cabeçalho do documento HTML, ou seja, entre <head> e </head>. Por exemplo: <style> body { background: #ccc; color: #666 } a { text-decoration:none; color: #aac; } a:hover { text-decoration: underline overline; color: #caa; }.protein { background: red; color: white; } </style> (3) outra alternativa consiste em colocar as definições CSS em um arquivo separado, geralmente, com extensão.css, e incorporá-lo aos documentos HTML. Esse arquivo é chamado de folha de estilo. Uma vantagem óbvia, é que você pode centralizar as definições facilitando eventuais alterações em estilos de formatação que devem modificar a aparência de todas as páginas do website. Além disso, pode-se incluir mais de uma folha de estilo em um mesmo documento. Isso facilita o gerenciamento da formatação de diferentes seções do website. Se uma atribuição é definida em mais de uma folha de estilo e ambas são incorporadas a um dado documento, vale a atribuição definida no último arquivo incorporado. Ou seja, uma atribuição sobre um mesmo elemento sobrescreve uma eventual atribuição anterior. Para incorporar uma folha de estilo a um documento, há duas maneiras: usar a tag <link> ou usar @import dentro de uma seção <style>. Esta última alternativa costuma gerar problemas, sobretudo para algumas (talvez todas) versões do MSIE. Em geral, sugere-se dar preferência ao uso de <link> para incorporar folhas de estilo. Assim, apresentaremos exemplo somente

para esta opção e deixamos como exercício a consulta sobre o uso da quarta opção que é o uso do @import. Para inserir uma folha de estilo usando <link>, basta inserir, geralmente, no cabeçalho (i.e. Entre <head> e </head>): <link rel= stylesheet type= text/css href= caminho_e_nome_do_arquivo.css /> Em geral, esta é a forma usada. Deixamos como referência o site da W3C para leitura complementar sobre outros atributos e outras possibilidades envolvendo a incorporação de folhas de estilo. http://www.w3.org/tr/html4/present/styles.html http://www.w3.org/tr/css2/media.html

Figura 14: Uso de CSS para criar uma tabela HTML personalizada (permitindo, dentre outras coisas definir bordas diferentes na mesma tabela) e de uma forma mais centralizada e eficiente as mesmas configurações podem ser aplicadas para outras tabelas do documento e, para alterar totalmente a aparência dessas tabelas, basta alterar as especificações CSS sem ter que alterar o código HTML. Além disso, as especificações CSS podem estar em um documento.css separado servindo para atender a todos os documentos do site para mudar alguma formatação no futuro, bastará alterar a definição no arquivo.css.

Figura 15: Um exemplo de saída possível para uma aplicação que exibe informações sobre um conjunto de moléculas. Figura 16: Código-fonte (somente HTML) que gerou a tabela da Figura anterior. Observe que as definições CSS foram importadas de um documento.css usando a tag <link>.

Figura 17: Especificações CSS para o código da Figura anterior.

Figura 18: Usando um código-fonte HTML essencialmente idêntico ao da Figura anterior, produziu-se uma tabela com um visual bem diferente.

Figura 19: Código-fonte (parte HTML) que produziu a tabela da Figura anterior. As definições CSS estão exibidas na próxima Figura.

Figura 20: As definições CSS para o código da Figura anterior.

Fundamentos de JavaScript Não estudaremos o JavaScript aqui por falta de tempo. Mas vamos tentar explicar o que ele é e para que serve. Diferentemente do que vimos até agora (HTML e CSS) o JavaScript é uma linguagem de programação. Enquanto HTML/CSS servem para definir a apresentação e a formatação do conteúdo de suas páginas, bem como permitir a interatividade através de hyperlinks e formulários, o JavaScript serve para inserir comportamentos disparados, em geral, instantaneamente em resposta a ações do usuário ou de algum temporizador (construído com o próprio JavaScript). Mas assim como HTML e CSS, JavaScript é executado pelo navegador. Um exemplo clássico de uso de JavaScript é a validação de formulários executada pelo próprio navegador do usuário, ou seja, sem requerer que os dados sejam enviados para o servidor e este faça a validação para então retornar alguma mensagem de erro caso encontre algo de errado. Para garantir segurança e confiabilidade, é importante que os dados passados via formulário sejam revalidados pelo servidor porque o código JavaScript pode ser adulterado ou pode haver alguma falha na sua execução que deixe passar algo impróprio. Outro exemplo bastante útil de aplicação do JavaScript é na disponibilização de uma funcionalidade de autocompletar ao digitar dados em uma caixa de texto de formulário (como os nomes de proteínas ou da espécie a ser pesquisada). Veja esse recurso sendo usado no site de sequências protéicas Uniprot (www.uniprot.org) e também em Drugs.com(http://www.drugs.com/drug_interactions.php). Programação server-side: PHP PHP é uma linguagem de programação que é executada no servidor. Assim, não há problemas de incompatibilidade com os navegadores como ocorre com HTML/CSS/JavaScript. Quando o usuário navega em um site e requer visualizar um dado documento PHP, o Webserver (Apache no nosso caso) chama o interpretador PHP para que este leia e execute o código. O que determina que o PHP deve ser chamado é a extensão do arquivo (.php) e não seu conteúdo. Alguns administradores configuram o Apache para também chamar o PHP quando a extensão do arquivo for.inc (de include). Cuidado com isso! Você pode ter surpresas desagradáveis com usuários conseguindo visualizar seu código-fonte PHP (às vezes até contendo senhas escritas) em algum documento.inc porque o administrador (ou mesmo você) se esqueceu de refazer a configuração adequada ao atualizar ou substituir um dado servidor. Assim, fica uma dica: ao escrever fragmentos de código que deverão ser incluídos em outros documentos PHP (isso pode ser feito com as funções include(), require() e outras) prefira denominar seus arquivos no formato foo.inc.php ou invente algo para ajudá-lo a gerenciar seus arquivos mas sempre usando a extensão.php. Um documento pode conter trechos que não serão interpretados pelo PHP de modo que você pode misturar PHP, HTML e qualquer texto no mesmo documento. Toda vez que um trecho precisar ser interpretado pelo PHP, deve-se abrir uma seção com <?php e encerrá-la com?>. Veja o exemplo abaixo:

<html> <head> <title>teste com PHP</title> </head> <body> Este trecho pode ser visto por todos.<br /> <?php if($login == 1){ echo Já isso só é exibido se a condição acima for <b>satisfeita</b>.<br />\n ; }?> Esse outro trecho também é exibido sempre. </body> </html> Vejamos agora um exemplo usando includes. <?php include(head.inc.php); include(protein_details.inc.php); include(foot.inc.php);?> <!-- Este é o conteúdo do arquivo head.inc.php --> <xml > <!doctype > <html> <head>... </head> <body> <!-- Aqui a barra de menu do site --> <!-- Este é o conteúdo do arquivo foot.inc.php --> <!-- Aqui texto do rodapé da página (endereço e telefone), copyright etc. --> </body> </html>

Vamos reconstruir a tabela da Figura 15 (cujo código-fonte está exibido na Figura 16). Figura 21: Código PHP para gerar a tabela da próxima Figura. Figura 22: Resultado do código PHP conforme exibido pelo navegador.

Figura 23: Código HTML retornado pelo PHP e entregue ao navegador. A documentação online do PHP (php.net) é excelente e recomendamos consultá-la. Verifique, por exemplo, as funções que tratam arrays (ordenar, colocar e retirar elementos, splits etc.). Verifique também as possíveis estruturas de repetição (for, while etc.) e as estruturas condicionais (if-elseif-else, case etc.). Você talvez precise rodar um programa externo (escrito em perl, por exemplo, ou o programa do próprio sistema operacional para compactar um dado arquivo a ser enviado por e-mail ao usuário). Se não for necessário que o script PHP receba algum retorno do programa externo, pode-se usar a função exec(), caso contrário, use a função system(). Outro recurso que pode ser interessante para a interface web que construiremos: guardar seção. Digamos que você selecione alguma estrutura durante a navegação e quer que essa seleção se mantenha enquanto navega pela interface e seleciona outras estruturas para serem todas analisadas em conjunto mais tarde. Para isso, pesquise sobre funções de sessões no php.net, principalmente as funções session_start, session_register e session_destroy (http://php.net/manual/en/ref.session.php). Bem... temos pouco tempo para tratar sobre HTML, CSS e PHP em nossa aula. Mas esperamos que as dicas apresentadas aqui ajudem a orientar seus estudos. Na segunda parte de nosso treinamento sobre desenvolvimento web e banco de dados, voltaremos a apresentar alguns exemplos de código em PHP. Abraços, Eduardo e Felipe.